RPM包管理-rpm命令管理
RPM包的命名规则
以Apache包为例
httpd-2.2.15-29.el6.centos.x86_64.rpm
httpd 软件包名
2.2.15 软件版本
29 发布的次数
el6.centos 软件适合的Linux平台
x86_64 适合的硬件平台
rpm 扩展名,应注意Linux中没有扩展名的概念,扩展名只是为了用户更好的操作文件而设置的规定
包全名与包名
包全名,指未安装的rpm包,在安装、升级等操作未安装的rpm包时使用,如httpd-2.2.15-29.el6.centos.x86_64.rpm
包名,包全名的前缀,在查询操作使用,如httpd
RPM包的依赖性
树形依赖
a->b->c,安装a软件需要先安装b软件,安装b软件先要安装c软件
卸载软件时,先卸载a软件,再卸载b软件,最后卸载c软件
环形依赖
a->b->c->a,安装a软件需要先安装b软件,安装b软件先要安装c软件,安装c软件反过来又先要安装a软件
解决环形依赖的方法是使用一条指令同时安装三个软件
库依赖
有时候安装软件,该软件依赖的并不是一个独立的软件包,而是属于某个软件包的一部分,称为库依赖包,库依赖包以[.so.数字]为后缀,安装库依赖包必须安装其所在的软件包
以安装Apache的软件包的部分过程为例说明:
当安装软件apr-util时,需要依赖libapr-1.so.0,此库文件包含在软件包apr-1.3.9-5.el6_2.x86_64.rpm软件包中,所以需要安装这个软件包,由此可知,库依赖最难解决的是库文件的所属问题,我们可以借助帮助网站www.rpmfind.net查询某一库文件所属的软件包
RPM包的安装更新和卸载
安装
rpm -ivh 包全名
-i(instal) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
升级
rpm -Uvh 包全名
-U(upgrade) 升级
卸载
rpm -e 包名
-e(erase) 卸载
RPM包的查询
1.查询某包是否安装
rpm -q 包名
-q(query) 查询
rpm -qa 查询所有已安装的包
2.查询软件包的详细信息
rpm -qi 包名
-i(information) 查询软件信息
rpm -qip 包全名 查询未安装包的信息
-p(package)
3.查询包中文件安装的位置
rpm -ql 包名
-l(list)
4.查询系统软件属于哪个RPM包
rpm -qf 系统文件名
-f(file)
5.查询软件包的依赖性
rpm -qR 包名
-R(requires)
rpm -qRp 包全名 查询未安装软件包的依赖性
rpm检验和文件提取
RPM包的检验
rpm -V 已安装的包名
-V 检验指定RPM包中的文件
对RPM包检验用于判断系统中文件是否被别人修改,例如,在Apache配置文件中加了几个注释内容,然后进行检验
看到有8个检验信息,如果没有变化就为.
校验信息中的8个信息的具体内容为
另外校验信息后的c为文件类型,表示这是一个配置文件,常见的文件类型有
rpm文件提取
rpm2cpio 包全名 | cpio -idv .文件根路径
-i copy-in,模式还原
-d 还原时自动新建目录
-v 显示还原进度
此命令将rpm软件包转换成cpio格式的文件,通过管道,使用cpio工具提取文件到当前路径下,最后将指定路径的文件复制到目的路径即可
当删除了某一系统文件,不需要重装系统,甚至不需要重装文件所在的软件包,直接在软件包中提取文件即可