包管理器rpm
1.安装
- 格式:rpm {-i|–install} [install-options] PACKAGE_FILE…
选项:
-v: verbose
-vv:
-h: 以#显示程序包管理执行进度
- rpm包安装[install-options]
–test: 测试安装,但不真正执行安装,即dry run模式
–nodeps:忽略依赖关系
–replacepkgs | replacefiles
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscripts:不执行程序包脚本
%pre: 安装前脚本 --nopre
%post: 安装后脚本 --nopost
%preun: 卸载前脚本 --nopreun
%postun: 卸载后脚本 --nopostun
2.升级和降级
- rpm包升级
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安装有旧版程序包,则“升级”,如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”, 如果不存在旧版程序包,则不执行升级操作
–oldpackage:降级
–force: 强制安装
- 升级注意项:
(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此直接安装新版本内核
(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件不会直接覆盖老
版本的配置文件,而把新版本文件重命名(FILENAME.rpmnew)后保留
3.包查询
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a:所有包
-f:查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
–whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
[query-options]
–changelog:查询rpm包的changelog
-c:查询程序的配置文件
-d:查询程序的文档
-i:information
-l:查看指定的程序包安装后生成的所有文件
–scripts:程序包自带的脚本
–provides:列出指定程序包所提供的CAPABILITY
-R:查询指定的程序包所依赖的CAPABILITY
4.包卸载
格式:rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test]
PACKAGE_NAME …
注意:当包卸载时,对应的配置文件不会删除, 以FILENAME.rpmsave形式保留
5.包校验
- 检查包的完整性和签名:rpm -K|checksig rpmfile
- 软件在安装时,会将包里的每个文件的元数据,如:大小,权限,所有者,时间等记录下来,可以用来
检查包中的文件是否和当初安装时有所变化
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
6.数据库
- rpm包安装时生成的信息,都放在rpm数据库中:/var/lib/rpm
- 可以重建数据库
rpm {–initdb|–rebuilddb}
initdb: 初始化,如果事先不存在数据库,则新建之,否则,不执行任何操作
rebuilddb:重建已安装的包头的数据库索引目录