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

详解程序包管理RPM

时间:2015-04-11 06:44:28      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:linux   rpm   程序包   

一、定义
      RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。


二、RPM包管理的用途

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

 

三、程序包的组成与命名格式

1、程序包的组成:
  二进制程序:/bin,/sbin,/usr/bin,/usr/sbin
         库文件:/lib,/lib64,/usr/lib,/usr/lib64
         配置文件:/etc
         帮助文件(文档):/usr/share/doc,/usr/share/man
2、RPM命名格式:
  appname-VERSION-RELEASE.ARCH.rpm
     appname:程序名称
     VERSION:
         major:主版本号
         minor:次版本号
         release:发行号
      release:包自身的修订号及适用的OS信息
      ARCH:适用的平台
         x86,i386,i486,i586,i686
     例如: zsh-4.3.10-9.el6.x86_64.rpm

 

四、光盘的挂载

       1、 #mkdir /media/cdrom
             #mount -r -t iso9660 /dev/cdrom /media/cdrom

       2、验正光盘程序包

 技术分享

    说明:如果不进行验正光盘程序包,则会因为找不到光盘中软件KEY而出现以下错误:

 技术分享

五、程序包管理RPM常用命令

   1、安装:
  rpm [option]  PACKAGE_FILE
     -i :安装程序包
     -h:以#号来表示安装进度
     --test:测试安装
     -v,--verboss:显示详细信息
     --nodeps:忽略依赖关系
     --force:强制安装
     --oldpackage:降级

技术分享    2、升级:
   rpm -U PACKAGE_FILE
       -U:升级或安装upgrde
   rpm -F PACKAGE_FILE
       -F:升级  freshen
      --test:测试升级
      --nodeps:忽略依赖关系
      --force:强制安装
      --oldpackage:降级   
    #rpm -F --test zip-3.0-1.el6.x86_64.rpm

     3、卸载:
      rpm -e PACKAGE_NAME
       -e:erase 卸载
       --test:测试卸载
       --nodeps:忽略依赖关系
       --allmatches:同时卸载多个版本

   #rpm -e --test zsh    

     4、查询:  
      rpm -q PACKAGE_NAME
      [select-options]
        -a:all,查询已安装所有程序包
        -f:file,查询文件由哪个程序包安装生成
        -p PACKAGE_FILE:查询未安装程序包安装后的文件列表
      [query-options]
        -q:查询系统是否已安装某程序包       

        -qi:查询程序包的简要
        -ql:查询程序包安装文件列表
        -c:configfiles,查询程序包安装的所有配置文件
        -qd:查询程序包文档信息
        -q --changelog:查询程序包制作时版本变化的changelog信息
        -q --provides:查询程序包提供的capabilities
        -q --requires:查询程序包的依赖关系
        -q --scripts: 查询程序包安装或卸载时执行脚本
           脚本分类:
             preinstall:安装前执行脚本
             postinstall:安装后
             preuninstall:卸载前
             postuninstall:卸载后

     (1)、查询系统已安装的软件

    技术分享   

       (2)、查询文件由哪个包安装生成

    技术分享

         (3)、查询程序包安装文件列表
     技术分享

  5、校验:
     查询包安装后生成的文件是否发生改变
      rpm -V PANKAGE_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
     程序包的合法性验正:
         来源全法:信任的制作者提供,依赖于制作者的数字签名,签名使用私钥加密程序包的特性码
         内容合法:完整性校验成功,未二次修改,依赖于制作者的程序特征码,验正方式,安装者用
         提取特性码与制作者提供的比较。

本文出自 “linux课堂笔记” 博客,请务必保留此出处http://wangxinjian.blog.51cto.com/6334977/1631088

详解程序包管理RPM

标签:linux   rpm   程序包   

原文地址:http://wangxinjian.blog.51cto.com/6334977/1631088

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