- RPM包管理
- 1、软件包安装
- 2、软件包升级
- 3、软件包卸载
- 4、软件包查询
- 5、软件包校验
1、软件包安装
rpm {-i|--install} [install-options] PACKAGE_FILE ...
[install-options]安装选项:
[-v]:显示安装信息
[-h]:以#显示程序包管理执行进度
[--nosigna-h: ture ]:不检查来源合法性
[--nodeps]:忽略依赖关系
[--nodigest]:不检查包完整性
[--noscripts]:不执行程序包脚本
[--test]: 测试安装,但是不真正执行安装
- 例子
[root@CentOS6 ~]#rpm -ivh /misc/cd/Packages/tree-1.5.3-3.el6.x86_64.rpm
Preparing... ########################################### [100%]
package tree-1.5.3-3.el6.x86_64 is already installed
2、软件包升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
如果有安装了旧程序包,则升级
如果没有安装旧程序包,则安装
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
如果安装了旧程序包,则升级
如果没有安装旧程序包,则不做任何操作
3、软件包卸载
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
4、软件包查询
rpm {-q|--query} [select-options] [query-options]
- [select-options]指定要查询的对象:
[-a,--all]所有安装了的软件包
[-f,--file FILE]指定被查看对象为文件
[-p,--package PACKAGE_FILE]指定查看对象为软件包
[-g]查看组
[--whatprovides CAPABILITY]查看某个能力(命令)来自于哪个软件包
[--whatrequires CAPABILITY]查看某个命令被谁依赖
- [query-options]查询什么内容:
[-i,--info]:查看软件包信息
[-l,--list]:查看软件包的文件列表
[-c]:查看程序的配置文件
[-d]:查看程序的文档
[-l]:查看安装后生成的所有文件
[--procides]:列出程序包提供的功能
[-R]:查询指定程序的依赖
-
常用命令:
rpm -qa
查询所有已安装的包
rpm -qa tree
查询已安装的tree包名称
rpm -qi tree
查询tree包的信息
rpm -ql tree
查询tree包的所有文件
rpm -qf /usr/bin/ls
查看/usr/bin/ls由哪个包生成
rpm -q --whatprovides tree
查看tree命令来自于哪个包
rpm -q --whatrequires bash
查看哪些包依赖于bash
rpm -qpi /misc/cd/Packages/zip-3.0-11.el7.x86_64.rpm
查看未安装的包的信息
rpm -qpl /misc/cd/Packages/zip-3.0-11.el7.x86_64.rpm
查看未安装包的会生成的所有文件
rpm -qpR /misc/cd/Packages/autofs-5.0.7-56.el7.x86_64.rpm
查看未安装包所依赖的
5、软件包校验
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
- 校验选项:
verify-options
[--nodeps] [--nofiles] [--noscripts]
[--nodigest] [--nosignature]
[--nolinkto] [--nofiledigest] [--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode] [--nordev]
[--nocaps]
- 例子1:
[root@CentOS7 Packages]#rpm --verify tree
[root@CentOS7 Packages]#rpm --verify autofs
S.5....T. c /etc/auto.misc
tree:校验结果是正常,所以终端上不会有输出结果;
autofs:校验结果是
S.5....T. c /etc/auto.misc
,说明autofs被改动过。S表示文件大小,5表示MD5哈希值,T表示文件的mtime改变了,被改动的文件是/etc/auto.misc。例子2:
[root@CentOS7 Packages]#rpm --verify --nosize autofs
..5....T. c /etc/auto.misc
- 选项[--nosize]表示不检查文件大小,所以这里没有S字段出现