rpm

Linux RPM命令

RPM软件包管理器是Red Hat Linux及其衍生产品,如CentOS和Fedora。使用的功能强大的软件包管理系统。RPM还指rpm命令和.rpm文件格式

4 min read
By myfreax
Linux RPM命令

RPM软件包管理器是Red Hat Linux及其衍生产品,如CentOS和Fedora。使用的功能强大的软件包管理系统。RPM还指rpm命令和.rpm文件格式。

RPM软件包包括文件和元数据的存档,其中包括诸如依赖和安装位置之类的信息。

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

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

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

在安装,更新和删除软件包时,始终应该优先使用yumdnf而不是rpm

在安装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 -Uvh package.rpm表示要升级RPM软件包,使用-U选项。如果未安装该软件包,则会进行安装。

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

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

删除RPM软件包,请使用-e选项,例如命令sudo rpm -e package.rpm

当您要删除软件包而不删除其依赖项时,--nodeps选项也很有用。--test选项告诉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选项以获取所查询软件包的更多信息。要获取已安装的RPM软件包中所有文件的列表,你可以运行命令sudo rpm -ql package

如果要查找指定文件属于哪个已安装软件包,请运行命令sudo rpm -qf /path/to/file

要获取系统上所有已安装软件包列表,请使用-a选项。例如命令sudo rpm -qa

验证RPM软件包

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

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

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

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

例如,输出.......T.  c /etc/openldap/ldap.conf显示文件的mTime已更改。

有关每个字符的含义,请参见RMP手册页。要验证所有已安装的rpm软件包,请运行命令sudo rpm -Va

结论

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

有关您终端中所有可用命令选项的更多信息,请键入man rpm或访问 RPM.org 网站。如果您有任何问题或反馈,请随时发表评论。