文章目录
{ .ImgAlt }}

RPM 包管理器 (RPM)是一个强大的包管理系统,它广泛用于 Red Hat Linux 和它的衍生版本,例如 CentOS 和 Fedora。RPM 涉及rpm命令和.rpm文件。一个 RPM 包由一个压缩包和 meta 信息(包含例如依赖包和安装位置等信息)组成。

在这篇指南中,我们将会讨论如何使用rpm命令去安装,更新,移除,验证,查询和其他的命令管理 RPM 软件包。

一、安装,更新和移除 RPM 软件包

通常,想要在基于 Red Hat 的发行版本上安装一个新的软件包,你可以使用yum或者dnf命令,它们可以解决和安装所有的依赖包。

在安装,更新,和移除软件包时,你可以选择yum或者dnf

在安装一个 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命令。下面的命令将会显示 OpenJDK14 是否被安装在系统上:

阿里云: 爆款云服务器低至1折,1核1G 1M 仅17月/月
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

阅读 RPM man 页面,关于每个字符的意义。

想要验证所有的 rpm 软件包,使用下面的命令:

sudo rpm -Va

四、总结

rpm是一个低级别的命令行工具,它用来安装,查询,验证,升级以及移除 RPM 软件包。当安装 RPM 软件包时,应该更偏向于使用yum或者dnf,因为他们会为你自动解决所有依赖问题。

想要获得更多关于rpm的可用信息,在终端输入man rpm或者浏览:RPM.org网站。




如果你有任何疑问,请通过以下方式联系我们:

微信:

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646 雪梦科技交流群

原文 :https://linuxize.com/post/rpm-command-in-linux

    版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。知识共享许可协议
腾讯云学生服务器_学生机_云服务器优惠套餐-云+校园 - 腾讯云

相关推荐