码迷,mamicode.com
首页 > 其他好文 > 详细

rpm命令

时间:2015-04-13 07:10:28      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:rpm

RPM文件在Linux系统中的安装最为比较便捷而且常用

RPM主要功能

安装、卸载、升级和管理软件

组件查询功能

验证功能

软件包GPG和MD5数字签名的导入、验证和发布

软件包依赖处理

选择安装


rpm 命令:遵循GPL协议且功能强大的包管理,它可以建立、安装、请求、确认、和卸载软件包。间接的提升了Linux 的易用性

-e 卸载rpm包

-q 查询已安装的软件信息

-i 安装rpm包

-u 升级rpm包

--replacepkgs 重新安装rpm包

--justdb 升级数据库,不修改文件系统

--percent 在软件包安装时输出百分比

--help 帮助

--version 显示版本信息

-c 显示所有配置文件

-d 显示所有文档文件

-h 显示安装进度

-l 列出软件包中的文件

-a 显示出文件状态

-p 查询/校验一个软件包文件

-v 显示详细的处理信息

--dump 显示基本文件信息

--nomd5 不验证文件的md5支持

--nofiles 不验证软件包中的文件

--nodeps 不验证软件包的依赖关系

--whatrequire 查询/验证需要一个依赖性的软件包

--whatprovides 查询/验证提供一个依赖性的软件包


 案列:

 --test:不执行真正的安装过程,而仅测试


技术分享

如下图如果不带--nodeps选项将无法安装

技术分享


—nodeps选项后安装执行结果

技术分享

覆盖安装:重新安装并覆盖原有的文件

         --replacepkgs

安装程序会检查系统,如果安装过的程序不会执行安装

技术分享

--replacepkgs 覆盖安装

技术分享

升级:

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

 -U :升级或安装

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

-F:升级

常用组合:-Uvh,-Fvh

--test:测试安装

--nodeps:忽略依赖关系

--force:忽略冲突,强制安装

--oldpackage:降级到旧版本;

注意:一定不要对内核执行升级;linux允许多内核共存,所有,可以直接安装多个不同版本内核;

注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置而是把新版本的配置文件重命名为(.rpmnew)后保存

例如原系统上已经安装过zsh-4.3.10-7.el6.x86_64版本直接执行zsh-4.3.10-9.el6.x86_64.rpm的安装程序后在查看版本依旧还是zsh-4.3.10-7.el6.x86_64


技术分享

技术分享

 

使用rpm -Uvh zsh-4.3.10-9.el6.x86_64.rpm命令升级成功

技术分享

降级操作示例:


卸载:

        移除已经安装的程序包

 rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers][--test] PACKAGE_NAME ...

简单用法: rpm -e PACKAGE_NAME....

--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载之;

--nodeps:忽略依赖关系;

--test: 测试卸载;dry-rum模式;

注意:如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名加后缀(.rpmsave

技术分享

 

 

 

 查询:

        查询某包是否已经安装,以及检查安装的所有包,还可以查看某包的详细信息;

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

[select-options]

 

 

     1、查询某包或某些包是否安装;

          rpm -q PACKAGE_NMAE./

     2、查询已经安装的所有包;

          rpm -qa

3、查询某文件是由哪个包安装生成;

     rpm -qf /PATH/TO/SOMEFILE

技术分享

4、查询尚未安装的包文件的相关信息

         -p

         rpm -qpi PACKAGE_FILE 查询为安装的程序信息

技术分享

rpm -qpl PACKAGE_FILE 查询为安装程序将生成哪些路径

技术分享

 

       

[query-options]

    1、查询某包的简要说明信息

              rpm -qi PACKAGE_NAME

     2、查询某包安装所生成的文件列表;

             rpm -ql PACKAGE_NAME

     3、查询某包安装完成后所生成的所有配置文件;

             rpm -qc zsh

       4、查询帮助文档信息

              rpm -qd  PACKAGE_NAME

        5、查看某包制作时随版本变化的changelog信息;

              rpm -q --changelog PACKAGE_NAME

         6、查询某包提供的capabilities

               rpm -q --provides  PACKAGE_NAME

          7、查询某包所依赖的Capabilities

                rpm -q --requires PACKAGE_NAME

          8、查询某包安装或卸载时执行脚本;

                 rpm -q --scripts PACKAGE_NAME

脚本有四类;

             preinstall:安装过程开始之前执行的脚本;

             postinstall:安装过程完成之后执行的脚本;

             preuninstall: 卸载执行之前开始执行的脚本;

             postuninstall: 卸载过程完成之后执行脚本;

校验:

     查询包安装之后生成的文件是否发生了改变

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

常见用法:rpm -v PACKAGE_NAME

        S file Size differs

      M Mode differs (includes permissions and file type)

      5 digest (formerly MD5 sum) differs

      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

 

程序包的合法性验证:

   来源合法;

由我们信任的制作者提供

依赖于:制作者的数据签名,签名的作者使用自己的私钥加密程序包的特征码进行的;

内容合法:

              包未被二次修改,完整性校验成功

               依赖于:制作者提供的程序特征码;

               验证方式:安装者用同样的特征码提取算法提取程序包的特征码,并与原作者提供的相比较;

 验证其光盘中程序包的来源及完整性:

    rpm --import /path/to/RPM-GPS-KEY-centos-6

使用rpm –K 验证

 技术分享

 

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

 重建数据库:

    rpm{--initdb|--rebuilddb}

  --initdb: 初始化数据库,即数据库完全不存在时,可新建之;

 --rebuilddb无论当前数据存在与否,都会直接重建此库;

 

 


rpm命令

标签:rpm

原文地址:http://nickxu.blog.51cto.com/1207271/1631594

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!