首页 >运维 >安全 >如何进行rpm程序包管理功能解析

如何进行rpm程序包管理功能解析

PHPz
PHPz转载
2023-05-24 09:01:051376浏览

Rpm包管理功能全解

软件包管理的功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装、升级、卸载、查询、校验、数据库维护。

下面我们来看看RPM包管理的解析

Rpm包在redhat和S.U.S.E中有很大的应用

我们接下来就以centos系统中rpm包的管理做一些详细的功能解析

使用yum(rhel系列)安装时可以自动解决依赖关系d

rpm包命名格式:

name-VERSION-release.arch.rpm

VERSION:major.minor.release

Major:主版本号(版本有大的更新);  minor:次版本号(小更新)

release.arch:rpm包的发行号

release.os: 2.el7(平台).i386(架构).rpm  archetecture(架构):i386, x64(amd64), ppc, noarch理器;

实际操作:

本机在服务器上已经成功下载zsh-4.3.10-9.el6.x86_64.rpm用此来实施

  语法:rpm [options] [packages_file]

        安装;-i,--install

            rpm -ivh /path/to/rpm_package

                -v;显示安装信息

                -vv;显示更详细的安装信息

                -h;以井号显示安装进度

                --nodeps;忽略依赖关系(适用于卸载)

                --force;强行安装(适用于卸载)

如何进行rpm程序包管理功能解析

        重装;--replacepkgs会覆盖原有信息

            Rpm -i  --replacepkgs  /path/to/rpm_name

     [root@bucktan ~]# rpm -ivh --replacepkgs zsh-4.3.10-9.el6.x86_64.rpm

        卸载;-e,--erase

            rmp -e package_name

                  --allmatches卸载匹配所有指定名称的软件包

                  --nodeps忽略依赖关系

                  --test 测试卸载

如何进行rpm程序包管理功能解析

        升级;-U -F

            升级或安装;

                rpm -U /path/to/rpm_package

                    --oldpackage降级

在服务器上取了两个包:zabbix-2.4.0-1.el6.x86_64.rpm

                      zabbix-2.4.5-1.el6.x86_64.rpm

 如何进行rpm程序包管理功能解析

之前升级至zabbix-2.4.5-1.el6.x86_64.rpm

[root@bucktan]~# rpm -Uvh --oldpackage zabbix-2.4.0-1.el6.x86_64.rpm

            只升级;(若不存在旧版本则不会执行)

                rpm -F /path/to/rpm_package

            通常搭配vh使用;

                rpm -Uvh|-Fvh /path/to/package

              --nosignature 不检查包签名信息的合法性

            注意;不要对内核执行升级操作

            不同内核版本可以共存,因此可执行安装操作,但不建议升级

    (重点) 查询;rpm {-q|--query} [select-options] [query-options]

            查询包是否已安装;

                rpm -q package_name

      [select-options]:

         rpm -qa查询所有已安装的包;

         rpm -qf /path/to/file查询某文件是由那个包生成的;

             -q --whatprovides   file_name  查询指定的capability由哪个程序包所提供

             -q --whatrequires    file_name 查询指定的capability由哪个程序包所依赖

 如何进行rpm程序包管理功能解析

       [query-options]:

                 rpm -ql package_name查询包安装后生成的文件;

             如何进行rpm程序包管理功能解析

                rpm -qi package_name查询包的简要说明;

      如何进行rpm程序包管理功能解析

                rpm -qd package_name查询包安装后生成的帮助文档;

            如何进行rpm程序包管理功能解析

                rpm -qc package_name查询包安装后生成的配置文件;

                rpm -qR package_name 查询指定软件包的依赖关系

                rpm -q --scripts   查询包相关的脚本;

                 脚本分四类

                    preinstall 安装前脚本

                    postinstall 安装后脚本

                    preuninstall 卸载前脚本

                    postuninstall 卸载后脚本

            查询未安装包的相关信息;-qp

                  rpm -qpl package_file 查询安装后会生成的的文件

                  rpm -qpi package_file查询包的简单描述信息;

              可搭配其选项使用,如-qp --scripts

        校验;检查安装后的文件是否被修改过

            rpm -V package_name

            [root@bucktan ~]# rpm -V zsh

             S.5....T.  c /etc/zshrc

              返回的注释信息;

                S file Size differs  大小

                M Mode differs (includes permissions and file type) 头文件

                5 digest (formerly MD5 sum) differs MD5

                D Device major/minor number mismatch

                L readLink(2) path mismatch

                U User ownership differs 属主

                G Group ownership differs 属组

                T mTime differs 修改时间

                P caPabilities differ 能力改变了

    校验来源合法性和软件的完整性

            包完整性;单项加密机制(MD5|sha1..)

            来源合法性;公钥加密机制(RSA)

                rpm -K /path/to/packagefile直接检验程序包来源合法性

                rpm --checksig /path/to/package_file

                    --nosigeature:不检查来源合法性

                    --nodigest:校验时不检查包完整性

            导入GPG密钥文件:

            rpm --import /path/to/gpg-key-file

            导入以后再做验证

        如何进行rpm程序包管理功能解析

    数据库

            位置:/var/lib/rpm

            重建:

                rpm --initdb:初始化

                    如果事先不存在一个数据库,则新建之

                rpm --rebuilddb 重建

                    直接新建数据库,会覆盖原有库

 如何进行rpm程序包管理功能解析

以上是如何进行rpm程序包管理功能解析的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:yisu.com。如有侵权,请联系admin@php.cn删除