在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 -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 -q --scripts PACKAGE_NAME:查询指定包中包含的脚本
rpm -qf /path/to/somefile :查询指定的文件是由那个rpm包安装生成的
如果软件包尚未安装,我们需要查询其说明信息、安装以后会生成的文件;
rpm -qpi /path/to/PACKAGE_FILE 未安装时查看说明信息
rpm -qpl /path/to/PACKAGE_FILE 未安装时查看安装后会生成的文件
升级:
rpm -Uvh /path/to/NEW_PACKAGE_NAME 如果装有老版本的,则升级;否则,安装
rpm -Fvh /path/to/NEW_PACKAGE_FILE 如果装有老版本的,则升级;否则,退出
--oldpackage:降级
卸载:
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包的依赖性问题解决,将再次单独说明。