Linux 中的 rpm 命令

RPM 软件包管理器 (RPM) 是 Red Hat Linux 及其衍生产品(如 CentOS 和 Fedora) 使用的功能强大的软件包管理系统。 RPM 也指 rpm 命令和 .rpm 文件格式。 RPM 软件包包括文件和元数据的存档,其中包括诸如依赖性和安装位置之类的信息。

在本教程中,我们将讨论如何使用该 rpm 命令来安装,更新,删除,验证,查询以及以其他方式管理 RPM 软件包。

安装,更新和删除 RPM 软件包

通常,要在基于 Red Hat 的发行版上安装新软件包,可以使用 yumdnf 命令,它们可以解析并安装所有软件包相关性。

相比 rpm ,在安装时,更新和删除软件包时,你应该总是喜欢使用 yumdnf

在安装 RPM 软件包之前,必须首先使用浏览器或 curlwget 之类的命令行工具在系统上下载该软件包。

安装 RPM 软件包时,确保他们为您的系统架构和您的内置的 CentOS 版本。更换或更新重要的系统软件包(例如 glibc , systemd 或其他对于系统正常运行必不可少的服务和库)时,请格外小心。

只有 root 或具有 sudo 特权的用户才能安装或删除 RPM 软件包。

要使用 rpm 安装 RPM 软件包,请使用 -i 选项,然后加上软件包名称:

sudo rpm -ivh package.rpm

选项 -v 指示 rpm 显示详细输出,选项 -h 指示显示带有哈希标记的进度条。

您可以跳过下载部分,并向 rpm 命令提供 RPM 软件包的 URL  :

sudo rpm -ivh https://example.com/package.rpm

要升级 RPM 软件包,请使用该 -U 选项。如果未安装软件包,则会直接安装:

sudo rpm -Uvh package.rpm

如果您正在安装或更新的软件包取决于当前未安装的其他软件包, rpm 则将显示所有缺少的依赖项的列表。您将必须手动下载并安装所有依赖项。

要安装 RPM 软件包而不在系统上安装所有必需的依赖项,请使用以下 --nodeps 选项:

sudo rpm -Uvh --nodeps package.rpm

要删除 RPM 软件包,请使用以下 -e 选项:

sudo rpm -e package.rpm

当您要删除软件包而不删除其依赖项时,该选项 --nodeps 也很有用:

sudo rpm -evh --nodeps package.rpm

--test 选项告知 rpm 安装或删除命令运行,而无需实际执行任何操作。它仅显示该命令是否有效:

sudo rpm -Uvh --test package.rpm

查询 RPM 包

-q 选项告诉 rpm 命令运行查询。

要查询(搜索)是否安装了某个软件包,请将软件包名称传递给 rpm -q 命令。以下命令将向您显示系统上是否已安装 OpenJDK 11 软件包:

sudo rpm -q java-11-openjdk-devel

如果安装了软件包,您将看到以下内容:

java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64

通过 -i 以获取有关所查询软件包的更多信息:

sudo rpm -qi java-11-openjdk-devel

要获取已安装的 RPM 软件包中所有文件的列表:

sudo rpm -ql package

如果要查找特定文件属于哪个已安装软件包,请键入:

sudo rpm -qf /path/to/file

要获取系统上所有已安装软件包列表,请使用以下 -a 选项:

sudo rpm -qa

验证 RPM 软件包

验证软件包时,该 rpm 命令将检查软件包安装的每个文件在系统上是否存在,文件的摘要,所有权,权限等。

要验证已安装的软件包,请使用该 -V 选项。例如,要验证 openldap 软件包,请运行:

sudo rpm -V openldap-2.4.46-9.el8.x86_64

如果验证通过,则该命令将不输出任何输出。否则,如果某些检查失败,它将显示一个字符,指示测试失败。

例如,以下输出显示文件的 mTime 已更改 (“ T”) :

.......T.  c /etc/openldap/ldap.conf

有关每个字符的含义,请参考 RMP 手册页。

要验证所有已安装的 rpm 软件包,请运行以下命令:

sudo rpm -Va

结论

rpm 是用于安装,查询,验证,更新和删除 RMP 软件包的低级命令行工具。安装 RPM 软件包时,最好使用 yumdnf, 因为它们会自动为您解决所有依赖性。

有关所有可用命令选项的更多信息,请在终端中输入 man rpm 或访问 RPM.org 网站。