rpm 全称RPM Package Manager

 

1.rpm包的查询

常用的有:

rpm -qa             # 列出所有已安装的rpm

rpm -qi zsh       # 查询zsh的具体信息

rpm -qf /bin/ls# 查询/bin/ls由哪个软件包释放的

rpm -qd zsh      # 查询zsh提供哪些帮助文档

rpm -qc zsh      # 查询zsh的配置文件地址

rpm -ql zsh       # 查询zsh安装过程中释放的文件路径

 

不太常用的有:

rpm -q --changelog zsh    # 查询zsh软件包的变更记录

rpm -q --requires zsh        # 查询zsh依赖的其他软件包

rpm -q --scripts zsh         # 查询zsh 包含的脚本【安装、卸载时候会调用这些脚本】

 

 

另外,加上 -p参数适用于尚未安装的软件包的信息查询,如:

注意加上-p参数后,后面接的是必须是完整的包名称

rpm -qpi httpd-2.2.15-39.el6.centos.x86_64.rpm           # 查询httpd软件包的详细信息

同理,-qpc-qpl-qpd -qp --changelog 的用法类似,都是用于查询尚未安装的软件包各种情况,可以参考上面。

 

 

 

2.rpm包的安装

rpm -ivh xxx.rpm      安装xxx软件包

rpm -Uvh xxx.rpm    升级【存在则升级,不存在则本次安装】

rpm -Fvh xxx.rpm     升级【存在则升级,不存在则本次也不安装】

rpm -ivh --replacepkgs xxx.rpm        覆盖安装

rpm -ivh --oldpackage xxx.rpm         降级安装rpm

安装过程中还有几个可选参数,

--test

         rpm -ivh --test xxx.rpm        表示仅测试软件包的安装情况,不实际安装

 

安装过程中,如果我们没有事先导入公钥,安装时候会提示缺少校验或签名。可以加上下面的选项:

--nodigest        # 读取时不校验打包或头部校验【如:rpm -ivh --nodigest xxx.rpm

--nosignature   # 读取时不校验打包或头部签名

 

 

3.rpm包的卸载

rpm -e xxx         #  注意这里xxx不需要写具体的xxx.rpm。【卸载httpd.2.2.19.rpm,只要写rpm -e httpd即可】

 

卸载过程中还有几个可选参数,

--nodeps

         rpm -ivh --nodeps httpd.2.1.3-12.rpm 表示忽略依赖关系,不建议这样使用。

--test

         rpm -ivh --test xxx.rpm        表示仅测试软件包的安装情况,不实际卸载

--noscripts        表示不执行rpm安装过程的脚本,不建议使用该参数。

 

 

4.rpm包的校验

校验软件包,是将已安装的文件的信息,与从软件包中获取的保存在 rpm 数据库中的有关文件的元数据进行比较。校验比较的内容有每个文件的大小,MD5 校验和,许可,类型,属主。任何不对的地方都回显示出来。

 

 

 

rpm -V zsh        # 校验zsh包【zsh已安装情况下】

rpm -Va             # 校验所有已安装的软件包的文件【md5

rpm -Vf /bin/ls# 校验/bin/ls文件【md5信息】

 

 

校验给出提示信息有如下几种:

c %config 配置文件

d %doc 文档

g %ghost 占位文档 (就是说,文件内容不包含在软件包有效内容里面)

l %license 许可文件

r %readme 说明文件

 

S file Size 大小不一致

M Mode 模式不一致 (包括许可和文件类型)

5 MD5 sum 校验和不一致

D Device 主从设备号不匹配

L readLink(2) 路径不匹配

U User 属主不一致

G Group 组属主不一致

T mTime 时间不一致

 

例如下图,对系统内已安装的所有包文件进行校验:

wKioL1XimjPRvAmtAACZzR2y3D8911.jpg

 

 

rpm包来源合法性校验

一般用于对新下载好的软件包进行校验MD5值使用

 

rpm --import /PATH/FROM/GPG-PUBKEY-FILE

 

例如:rpm -K  zsh-4.3.10-7.el6.x86_64.rpm

提示如下,zsh-4.3.10-7.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

 

 

 

5.rpm数据库重建

rpm --initdb               # 初始化rpm数据库

rpm --rebuilddb        # 重新生成rpm数据库

 

 

可能还有不完善的地方,待补充。