在Linux操作系统中,有一个系统软件包,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。
软件包管理的核心功能:
1、制作软件包;
2、安装、卸载、升级、查询、校验;
 
下面,我们具体说一下rpm包的使用方法
rpm命令:
      rpm:管理软件包。(其数据库在/var/lib/rpm文件中)
      rpmbuild:创建软件包。
rpm包的管理:
完成安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作;
 
安装:
rpm -i|--install /path/to/PACKAGE_FILE
        -h:以#号显示安装进度:每个#表示2%
        -v:显示详细过程
        -vv:更详细的过程
rpm -ivh /path/to/PACKAGE_FILE
          --nodeps:忽略依赖关系;
          --replacepkgs:重新安装,替换原有安装;
          --oldpackage:版本降级
          --force:强行安装,可以实现重装或降级
          --test:测试是否安装 
rpm软件包的管理_rpm软件包

 

查询:
rpm -q PACKGE_NAME 查询指定的包是否已经安装
例: # rpm -q bind  
rpm -qa :查询已经安装的所有包
例: # rpm -qa | grep "^z"  查询所有以z开头的软件包
rpm -qi PACKAGE_NAME:查询指定软件包的说明信息
rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表
rpm -qc PACKAGE_NAME:查询指定包安装的配置文件
rpm -qd PACKAGE_NAME:查询指定包安装的帮助文件
rpm软件包的管理_rpm软件包_02
rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本
rpm软件包的管理_rpm软件包_03
rpm -qf /path/to/somefile :查询指定的文件是由那个rpm包安装生成的
rpm软件包的管理_rpm软件包_04
如果软件包尚未安装,我们需要查询其说明信息、安装以后会生成的文件;
rpm -qpi /path/to/PACKAGE_FILE 未安装时查看说明信息
rpm -qpl /path/to/PACKAGE_FILE 未安装时查看安装后会生成的文件
rpm软件包的管理_Linux_05
升级:
rpm -Uvh /path/to/NEW_PACKAGE_NAME  如果装有老版本的,则升级;否则,安装
rpm -Fvh /path/to/NEW_PACKAGE_FILE  如果装有老版本的,则升级;否则,退出
     --oldpackage:降级
rpm软件包的管理_Linux_06
卸载:
rpm -e PACKAGE_NAME
  --nodeps 忽略有依赖关系的
 例:# rpm -e zlib
校验:
rpm -V PACKAGE_NAME 查看文件是否被改动
例: # rpm -V zlib
重建数据库:
在/var/lib/rpm/文件中
rpm 
--rebuilddb:重建数据库 (一定会重新建立数据库)
--initdb:初始化数据库  (没有才建立,有不用建立)
检验来源合法性,及软件包完整性:
rpm包:先单向加密取出其MD5码,启用自己的私钥加密
              公钥使用同样的加密算法解密,对比MD5码是否一致。
             /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (公钥所在文件)
     # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
        (公钥导入)
     # rpm -K /PATH/TO/PACKAGE_FILE
               dsa, gpg:验证来源合法性,也即验证签名。可以使用--nosignature,略过此项。
               sha1,md5:验证软件包完整性。可以使用--nodigest,略过此项。
 
至于rpm包的依赖性问题解决,将再次单独说明。