Linux中的RPM命令
RPM软件包管理器(RPM)是Red Hat Linux及其衍生产品(如CentOS和Fedora)使用的功能强大的软件包管理系统。 RPM也指 rpm
命令和 .rpm
文件格式。 RPM软件包包括文件和元数据的存档,其中包括诸如依赖性和安装位置之类的信息。
在本教程中,我们将讨论如何使用 rpm
用于安装,更新,删除,验证,查询和以其他方式管理RPM软件包的命令。
安装,更新和删除RPM软件包#
通常,要在基于Red Hat的发行版上安装新软件包,您将使用 yum
要么 dnf
命令,可以解析和安装所有程序包依赖项。
您应该始终喜欢使用 yum
要么 dnf
过度 rpm
在安装,更新和删除软件包时。
在安装RPM软件包之前,您必须首先使用浏览器或命令行工具(例如, curl
要么 wget
。
安装RPM软件包时,请确保它们是针对您的系统体系结构和CentOS版本构建的。 更换或更新重要的系统软件包(例如glibc,systemd或其他对于系统正常运行必不可少的服务和库)时,请格外小心。
只有root或具有sudo特权的用户才能安装或删除RPM软件包。
要通过以下方式安装RPM软件包: rpm
, 使用 -i
选项,然后是软件包名称:
sudo rpm -ivh package.rpm
的 -v
选项告诉 rpm
显示详细的输出和 -h
选项以显示带有哈希标记的进度条。
您可以跳过下载部分,并将RPM软件包的URL提供给 rpm
命令:
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软件包时,应优先使用 yum
要么 dnf
因为它们会自动为您解决所有依赖性。
有关所有可用命令选项的更多信息,请键入 man rpm
在您的终端中或访问RPM.org网站。
如果您有任何疑问或反馈,请随时发表评论。
centos终端rpm