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工具提取文件到当前路径下,最后将指定路径的文件复制到目的路径即可

当删除了某一系统文件,不需要重装系统,甚至不需要重装文件所在的软件包,直接在软件包中提取文件即可

原文地址:https://www.cnblogs.com/qingyaxuan/p/6669600.html