写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
本文关键字:Linux、CentOS、软件管理、RPM工具、软件依赖
RPM的全称是:Red Hat Package Manager,是RPM软件包管理器。在Linux系统中对应命令是rpm,我们看到名称中含有Red Hat,也就说明主要是在Red Hat发行版中使用的,除此之外还包括和Red Hat最亲近的CentOS,以及其他一些主流发行版:SuSE、Fedora等。
在进行软件查询时,适用rpm工具只能查询到以rpm软件包形式安装的软件信息,解压和编译安装的软件无法查询到信息。
(1)查询已安装的软件信息
(2)查询未安装的软件信息
该操作主要是在软件包安装之前进行详细信息的查询,所以传入的参数是一个存在的软件包的路径。
使用-V可以验证软件包的正确性。
(1)常用命令
校验信息的后半部分显示对应的目录或文件,前半部分用大写字母表示产生变动的项目。
软件包的卸载需要使用root用户来执行,必须完整提供卸载软件包的名称,可以先通过筛选查询获取。
在进行卸载操作时,可能有其他软件依赖于此软件,卸载后可能会导致其他软件不可用,如果存在依赖关系,则会显示依赖信息,如果执意要删除,可以使用忽略依赖的选项:–nodeps。
rpm -e --nodeps vim-enhanced
软件包的安装需要使用root用户来执行,安装前一般会先查询已安装的相关软件,并卸载与之冲突的软件。
在进行软件安装时,可能系统当中缺少某个依赖,导致无法正常安装,可以使用–force选项进行强制安装,但无法保证安装后能够正常使用。常规的解决办法是先安装需要的依赖软件包,再安装该软件,或者使用yum工具。
与安装类似,使用root用户操作来操作,升级某一软件。
由于在升级时,旧版本的软件可能已经安装,也可能从未安装,针对这种情况,提供了两个参数。
U表示:如果对应的软件包原来未安装,则直接安装,和i的效果相同
F表示:如果对应的软件包原来未安装,则放弃安装
rpm -U/F 软件包完整路径:升级一个软件
(1)RPM数据库维护
如果本机的RPM数据库损坏,可能会导致无法正确的读取依赖关系,致使无法正常执行rpm相关功能,此时可以使用--initdb选项。
rpm --initdb
(2)签名验证
当下载了一个软件后,如果我们无法确保它的来源,以及是否被篡改,则需要使用相应的GPG文件。一般在光盘镜像、网络镜像中都可以找到该文件,使用--import命令导入,在安装软件时会自动生效。
rpm --import /mnt/cdrom/RPM-GPG-KEY-CentOS-6