RPM 包管理器 (RPM) 是 Red Hat Linux 及其衍生产品(例如 CentOS 和 Fedora)使用的功能强大的包管理系统。 RPM 也指rpm
命令和.rpm
文件格式。 RPM 包由文件和元数据的存档组成,其中包括依赖项和安装位置等信息。
在本教程中,我们将讨论如何使用rpm
用于安装、更新、删除、验证、查询和以其他方式管理 RPM 包的命令。
安装、更新和删除 RPM 软件包#
通常,要在基于 Red Hat 的发行版上安装新软件包,您将使用yum
or dnf
命令,可以解析并安装所有包依赖项。
你应该总是更喜欢使用yum
or dnf
over rpm
安装、更新和删除软件包时。
在安装 RPM 软件包之前,您必须首先使用浏览器或命令行工具(例如curl
or wget
.
When 安装 RPM 包,确保它们是为您的系统架构和您的CentOS版本。替换或更新重要的系统软件包(例如 glibc、systemd 或其他对于系统正常运行至关重要的服务和库)时要格外小心。
仅 root 或具有以下权限的用户须藤权限可以安装或删除RPM包。
使用以下命令安装 RPM 包rpm
, 使用-i
选项,后跟包名称:
sudo rpm -ivh package.rpm
The -v
选项告诉rpm
显示详细输出和-h
显示哈希标记进度条的选项。
您可以跳过下载部分,并将 RPM 包的 URL 提供给rpm
命令:
sudo rpm -ivh https://example.com/package.rpm
要升级 RPM 包,请使用-U
选项。如果未安装该软件包,则会安装该软件包:
sudo rpm -Uvh package.rpm
如果您正在安装或更新的软件包依赖于当前未安装的其他软件包,rpm
将显示所有缺少的依赖项的列表。您必须手动下载并安装所有依赖项。
要安装 RPM 软件包而不在系统上安装所有必需的依赖项,请使用--nodeps
option:
sudo rpm -Uvh --nodeps package.rpm
要删除(擦除)RPM 包,请使用-e
option:
sudo rpm -e package.rpm
The --nodeps
当您想要删除包而不删除其依赖项时,选项也很有用:
sudo rpm -evh --nodeps package.rpm
The --test
选项告诉rpm
运行安装或删除命令而不实际执行任何操作。它仅显示该命令是否有效:
sudo rpm -Uvh --test package.rpm
查询RPM包#
The -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
Pass -i
获取有关所查询包的更多信息:
sudo rpm -qi java-11-openjdk-devel
要获取已安装的 RPM 包中所有文件的列表:
sudo rpm -ql package
如果您想找出特定文件属于哪个已安装的软件包,请键入:
sudo rpm -qf /path/to/file
为了得到一个所有已安装软件包的列表在您的系统上使用-a
option:
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 包时应该优先使用yum
or dnf
因为它们会自动为您解决所有依赖关系。
有关所有可用命令选项的更多信息,请键入man rpm
在您的终端中或访问RPM.org网站。
如果您有任何问题或反馈,请随时发表评论。