RPM
rpm是Linux上一个很好用的程序包管理管理器,它具有安装、卸载、升级、查询、校验、数据库维护等功能。
下面分别介绍一下rpm的各个功能:
安装:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
-v:详细显示安装过程
-vv:相对-v更加详细
-h: 以#显示程序包管理执行进度;每个#表示2%的进度
安装过程如图
另外还有一些其他选项
[install-options]
--test: 测试安装,但不真正执行安装过程;dry run模式;
--nodeps:忽略依赖关系;
--replacepkgs: 重新安装;
--nosignature: 不检查来源合法性;
--nodigest:不检查包完整性;
--noscipts:不执行程序包脚本片断;
%pre: 安装前脚本; --nopre
%post: 安装后脚本; --nopost
%preun: 卸载前脚本; --nopreun
%postun: 卸载后脚本; --nopostun
升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
其中使用-U选项时,安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;
使用-F选项时,安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作;
--oldpackage:此选项为降级操作;
--force:如果添加此选项为强制升级
查询:
rpm {-q|--query} [select-options] [query-options]
[select-options]查询选择的相关选项
-a: 查看所有包
-f: 查看指定的文件由哪个程序包安装生成
-p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供;
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;
[query-options]
--changelog:查询rpm包的changlog
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件;
--scripts:程序包自带的脚本片断
-R: 查询指定的程序包所依赖的CAPABILITY;
--provides: 列出指定程序包所提供的CAPABILITY;
查询指定程序的详细信息
查询指定文件由哪一程序包安装生成
查询指定程序包安装生成的所有文件
查询程序的文档
卸载:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
校验:
rpm {-V|--verify} [select-options] [verify-options]
修改一文件后,校验结果如图
各字段的意义为
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 {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之;否则,不执行任何操作;
rebuilddb:重建
无论当前存在与否,直接重新创建数据库;