1、包命名规则
使用rpm命令安装包的时候,需要先弄清楚包命名的规则。
举例:Httpd-2.4.6-80.el7.centos.x86_64.rpm
- Httpd:软件包包名;
- 2.4.6:软件版本;
- 80:软件发布的次数;
- el7.centos:适合的Linux平台;
- x86_64:适合的硬件平台 x86表示32位系统 64表示64位系统 noarch 表示任何硬件平台都可以安装;
- rpm:rpm包扩展名(rpm后缀名是一个约定,用来给系统管理员看的);
在系统安装源文件中,有Packages文件夹,查看里面的包均是此命名规则。如下图所示:
注意:Httpd-2.4.6-80.el7.centos.x86_64.rpm为包全名,Httpd是包名。包名和包全名是有区别的,Linux系统命令是区分这两个名称的。
2、RPM包依赖性
2.1、树形依赖
解决树形依赖:按照安装提示说明,逐个安装包。即要想安装包A,先安装包B和包C,要想安装包C先安装包D和包E。
2.2、环形依赖
解决环形依赖:同时安装包A、包B、包C。
2.3、模块依赖
有时候在安装包的时候会报错“.so.数字”的依赖性错误,此错误为模块依赖错误。
这时候,我们需要先知道此模式是属于哪个RPM包的。
可以进入 http://www.rpmfind.net 网站,查询某个模块属于哪个包。
3、安装、升级与卸载
在安装升级软件包时候,要是用包全名。而且要注意路径,必须能够访问到包的的安装源文件才可以。
在操作软件包或者卸载软件包的时候,可以使用包名。
3.1、安装命令
命令格式:rpm -ivh 包全名
参数说明:
- i 安装;
- v 显示详细安装信息;
- h 显示进度;
例如执行命令安装Httpd包,此时要使用包全名。
rpm -ivh Httpd-2.4.6-80.el7.centos.x86_64.rpm
3.2、升级命令
命令格式:rpm -Uvh 包全名
参数说明:
- -U 升级
3.3、卸载命令
命令格式: rpm -e 包名
参数说明:
- -e 卸载;
4、RPM包查询
4.1、查询指定包名是否安装
命令格式:rpm -q 包名
查询是否安装了zip包,执行命令:
rpm -q zip
4.2、查询所有安装的包
执行命令:
rpm -qa
4.3、查询所有含有关键字的包
命令格式:rpm -qa | grep [关键字]
查询zip相关的包,执行命令:
rpm -qa | grep zip
如下图所示:
4.4、查询软件包详细信息
执行命令:
rpm -qi 包名
参数说明:
- -i 查询软件信息;
- -p 查询未安装包信息;
例如查询zip包的软件详细信息,如下图所示:
4.5、查询包文件安装位置
执行命令:
rpm -ql 包名
参数说明:
- -l 列表;
- -p 查询未安装包信息;
4.6、查询文件属于哪个RPM包
执行命令:
rpm -qf 系统文件名
查询/usr/share/man/man1/zip.1.gz文件是属于哪个包的,查询结果:zip-3.0-23.el8.x86_64。
4.7、查询软件包的依赖性
rpm -qR 包名
5、RPM包校验
rpm -V 已安装的包名
校验一下zip的RPM包,如下图所示:
没有任何信息,表示没有任何更改。
我们编辑一下 /usr/share/doc/zip/README 文件,保存后重新校验RPM包,如下图所示:
S.5....T. d /usr/share/doc/zip/README
返回的信息包含三个部分:
第一部分 S.5....T.
验证文件8个信息:
- S:文件大小是否改变;
- M:文件的类型或文件的权限(rwx)是否被改变;
- 5:文件MD5校验和是否改变,MD5是进行文件完整性验证的;
- D:设备的中,从代码是否改变;
- L:文件路径是否改变;
- U:文件的所有者是否改变;
- G:文件的所属组是否改变;
- T:文件的修改时间是否改变;
第二部分 d
文件类型:
- c:配置文件;
- d:普通文档;
- g:“鬼”文件,很少见,就是该文件不应该被这个RPM包包含;
- l:授权文件;
- r:描述文件;
第三部分 /usr/share/doc/zip/README
文件具体路径