程序包管理之rpm

rpm命令参数使用详解

CentOS系统上rpm命令管理程序包:

    主要分为:安装、升级、卸载、查询和校验、数据库维护

    使用格式:rpm命令:rpm [OPTIONS] [PACKAGE_FILE]

       选项:

         安装:-i,--install

         升级:-U,--update,-F,--freshen

         卸载:-e,--erase

         查询:-q,--query

         校验:-V,--verify

         数据库维护:--builddb,--initdb

一、安装

 rpm {-i|--install} [install-options] PACKAGE_FILE ...

      rpm -ivh PACKAGE_FILE ...

      GENERAL OPTIONS:

      -v:verbose,详细信息

图示:

wKiom1Z6D96gwicaAAAs1u9Ft8g812.png      -vv:更详细的信息

图示:

[root@localhost Packages]# rpm -ivvh zsh-5.0.2-7.el7.x86_64.rpmwKioL1Z6EKyjRV6sAABNGFP_Htw288.png

 [install-options]:

          -h:hash marks输出进度条,每个#表示2%的进度

          --test:测试安装,检查并报告依赖关系及冲突消息等

图示

wKioL1Z6EWzikCv_AAAjO4L7AsU521.png          --nodeps:忽略依赖关系,不建议

图示

wKioL1Z6EhywWUiIAACEY_yYR58878.png          --replacepkgs:重新安装(原有文件被修改,需删除)

图示:

wKioL1Z6EpSjJdzqAAAtAE1j0Ac137.png


rpm自带脚本;

     共分为四类:--noscripts

     1、preinstall:安装过程开始之前运行的脚本,%pre , --nopre

2、postinstall:安装过程完成之后运行的脚本,%post , --nopost

3、preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun 

4、postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun

      --nosignature:不检查包签名信息,不检查来源合法性;

图示:

wKioL1Z6FQCAwfkvAAAYhuxtPKo575.png

      --nodigest:不检查包完整性信息;

图示:

wKioL1Z6FUCTQlkgAAAssJMr020780.png

二、升级

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

    upgrade:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”

    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

    freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级

     

-U:升级或安装;

-F:升级

rpm  -Uvh PACKAGE_FILE ...

图示:

wKiom1Z6HLHTHPFBAAA-rzMZIhw398.png

rpm  -Fvh PACKAGE_FILE ...

图示:

wKiom1Z6HYrhl3IhAAA-wcN_4rE687.png

--oldpackage:降级;

--force:强制升级;

注意:(1)不要对内核做升级操作:Linux支持多内核版本并存,因此,直接安装新版本内核

    (2)如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一       个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名后提供

三、卸载:

        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

            --allmatches:卸载所有匹配指定名称的程序包的各版本

            --nodeps:忽略依赖关系

            --test:测试卸载,dry run模式

图示:

wKioL1Z6GVuzu-q6AAAa58vDBts829.png

四、查询:

       rpm {-q|--query} [select-options] [query-options]

         [select-options] 

          PACKAGE_NAME:查询指定的程序包是否已经安装,及其安装版本

          -a,--all:查询所有已经安装过的包

          -f FILE:查询指定的文件由哪个包安装的

图示:

wKioL1Z6Hk_R3LxhAAAPgzxb-GE379.png

          -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作

         --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供

         --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

           [query-options]

           --changelog:查询rpm包的changlog

           -l,--list:程序安装生成的所有文件列表

wKiom1Z6H63wpJVUAAAtEY7kfwY280.png

           -i,--info:程序包相关的信息,版本号、大小、所属的包组,等

wKioL1Z6HyzyvTDVAABSs_5cNVs498.png           -c,--configfiles:查询指定的程序包提供的配置文件

wKiom1Z6H9zR3LrmAAAWN3O6aso937.png           -d,--docfile:查询指定的程序包提供的文档

           -R,--requlres:查询指定的程序包的依赖关系

           --provides:列出指定的程序包提供的所有的CAPABILITY

           --scripts:查看程序包自带的脚本片断


五、校验:

      rpm {-V|--verify} [select-options] [verify-options]

         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 

         包来源合法性验证和完整性验证:

         来源合法性验证:

                   数字签名:       

                   完整性验证:

       获取并导入信任的包制作作者的密钥:

       对于CentOS发行版来说:rpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7

          验证:

             1、安装此组织签名的程序时,会自动执行验证

             2、手动验证:rpm-K PACKAGE_FILE

wKioL1Z6IXOh3S2hAAAXpDPD7PE308.png

        光盘公钥导入spacer.gif

                [root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7

六、数据库重建:

          rpm管理器数据库路径:/var/lib/rpm/

          查询操作:通过此处的数据库进行;

          获取帮助:

              centos6:man rpm

              centos7:man rpmdb

      rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

          --initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前                  有时不执行任何操作;

          --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进                    行重新创建;

wKiom1Z6PL7j68yfAABcCXinzOc896.png



你可能感兴趣的:(rpm)