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

rpm包管理

时间:2014-07-21 12:48:24      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:version   release   源代码   合法性   特征码   

一:简介

rpm包的命名格式:

     name-version-relase.arch.rpm


     version:major,minor,release,同源代码

     release:rpm自身的发行号,与程序源代码的发行号无关,仅用于标示对rpm包不同制作的修订;同时,release还包含此包适用的OSbash-4.2.3-3.centos5

    arch:适用于的硬件平台,

                    可靠的途径:EPEL

                    Fedora-EPEL  额外包

rpm包的合法性验证:

 包制作者制作完成之后会附加数字签名于包上;来源合法性;包的完整性

 包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特性码,附加原始数据后面。

验证过程:

    前提:必须有可靠机制获取到包制作者的公钥;

1、使用制作者的公钥解密加密的特征码,能解密则意味着来源合法;

2、使用与制作者同样的意向加密算法提取原始数据的特征码,并与解密出来的特征作对比,相同,则意味着完整性没有问题。


二:rpm包管理器的常见使用场景:

安装程序包

格式:

 rpm [option] /path/to/package_file

-i

安装程序包 例如rpm -i zsh-4.3.10-7.e16.x86_64.rpm

-v

详细安装信息  注 -vv -vvv 可以看见更详细和更加详细的安装信息

-ivh

显示安装进度

--test

仅作测试,有真正执行安装

 注:如果依赖于其它包:

1、解决依赖关系

2、忽略依赖关系

      能卸载,但依赖于此包程序包可能会运行不正常;

     强制卸载:--nodeps 



三:升级程序包

    新版本替换老版本 :rpm [option] /path/to/package_file

   1、升级或安装

       -Uvh

   2、纯升级

       -Fvh

升级后的版本冲突等;

强制升级:--force


注意:不应该对内核执行升级操作,而安装系统允许多内核并存



四:查询操作:

1、查询某包是否安装

 rpm -q package_name...

   例如: rpm -q zsh     查看2个以上   rpm -q zsh phd

 

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

   rpm -qa   

  按条件过滤:rpm -qa | grep ‘PATTERN‘

   例如: rpm -qa | grep "^php.*m.*"

3、查询包的描述信息

   rpm -qi package_name   例如:rpm -qi zsh

4、查询某包安装生了那些文件   

    rpm -ql package_name 

  (1) 查询某包安装生成了哪些配置文件

    rpm -qc package_name


  (2) 查询某包安装生成了哪些帮助文件

rpm -qd package_name


  (3) 查询程序包的相关脚本

        rpm -q --scripts package_name

  

脚本有四类:

preinstall:安装前脚本

postinstall: 安装后脚本

preuninstall: 卸载前脚本

postuninstall: 年前后脚本


5、查询某文件是由哪个包安装生成的

  rpm -qf /path/to/some_file

6、对尚未安装的包执行查询

   rpm [option] /path/to/package_file

 

-qpi

列出RPM软件包的描述信息

-qpl

列出RPM软件包内的文件信息

-qpc

查看一个软件包的配置文件

-qpd

查看软件包的文档所在的位置

 

五:校验:

   用于检查包安装生成的文件属性是否发生变化


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包来源合法性及完整性检验:

前提:在当前系统上导入包的制作者的公钥


导入:

    rpm --import /path/to/key_file

    # rpm -qa gpg-pubkey*   显示所有已经导入的gpg格式的公钥

    # rpm -qi gpg-pubkey-NAME  显示密钥的详细信息


七:检查包:安装过程中会自动执

    rpm -K /path/to/package_file

    rpm --checksig /path/to/package_file

   

    不检查包完整性:rpm -K --nodigest

    不检查来源合法性: rpm -K --nosignatu



八:数据库重建:

   数据库目录:/var/lib/rpm


重建:

rpm --initdb:初始化

如果事先没有库,会新建一个;如果有,则不新建;


rpm --rebuilddb: 重建

   直接重建,覆盖原有的数据库


本文出自 “正则表达式” 博客,请务必保留此出处http://hhxxb.blog.51cto.com/9152570/1440620

rpm包管理

标签:version   release   源代码   合法性   特征码   

原文地址:http://hhxxb.blog.51cto.com/9152570/1440620

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