首页 > 代码库 > Linux01-rpm包深入详解40

Linux01-rpm包深入详解40


一、rpm包

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

   2、rpm功能:安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;

   3、rpm包组成部分:

       a)主包:

           如:bind-9.7.1-1.el5.i586.rpm

       b)子包:

           如:bind-libs-9.7.1-1.el5.i586.rpm

               bind-utils-9.7.1-1.el5.i586.rpm

   4、rpm包名格式:name-version(major.minor.releas)-release.arch.rpm

       a)major.minor.release表示:

           主版本号:重大改进

           次版本号:某个子功能发生重大变化

           发行号:修正了部分bug,调整了一点功能

       b)release.arch表示:

           release:版本和支持系统;

           arch表示:支持在什么平台下运行;noarch表示在32位或64位平台下都可以运行;ppc表示powerpc下运行;如:bind-9.7.1-1.noarch.rpm和bind-9.7.1-1.ppc.rpm;

二、rpm包管理命令

   1、安装

       rpm -i /PATH/TO/PACKAGE_FILE

           -h: 以#显示进度;每个#表示2%;

           -v: 显示详细过程

           -vv: 更详细的过程

       rpm -ivh /PATH/TO/PACKAGE_FILE

   如:rpm -ivh /mnt/CentOS/zsh-4.2.6-8.el5.i386.rpm

           --nodeps: 忽略依赖关系;

           --replacepkgs: 重新安装,替换原有安装;

           --force: 强行安装,可以实现重装或降级;

   如:rpm -ivh --replacepkgs /mnt/CentOS/zsh-4.2.6-8.el5.i386.rpm

   2、查询

       a)rpm -q PACKAGE_NAME:查询指定的包是否已经安装;

       b)rpm -qa : 查询已经安装的所有包;

   如:rpm -qa | grep "^z

       c)rpm -qi PACKAGE_NAME: 查询指定包的说明信息;

       d)rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;

       e)rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;

       f)rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;

       g)rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本;

   如:rpm -q --scripts zsh

       h)rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

   如:rpm -qf /etc/inittab

       i)如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件:

           rpm -qpi /PATH/TO/PACKAGE_FILE

           rpm -qpl

   3、升级

       a)rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;

   如:rpm -Uvh nano-1.3.12-1.1.1.gls.i386.rpm

       b)rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;

           --oldpackage: 降级

   4、卸载

       rpm -e PACKAGE_NAME

           --nodeps:忽略依赖关系;

   5、校验

       rpm -V PACKAGE_NAME:验证安装的文件是否修改;

   6、重建数据库

       rpm

           --rebuilddb: 重建数据库,一定会重新建立;

           --initdb:初始化数据库,没有才建立,有就不用建立;

   7、检验来源合法性,及软件包完整性;

       a)加密类型:

           对称:加密解密使用同一个密钥

           公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;

           单向:

       b)RH密钥文件:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

       c)如何验证?

           c1)rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件

           c2)rpm -K /PAPT/TO/PACKAGE_FILE

               dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项;

               sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项;    


本文出自 “Nick Liu的博文” 博客,请务必保留此出处http://zkhylt.blog.51cto.com/3638719/1410543