前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 中的 RPM 命令

Linux 中的 RPM 命令

作者头像
雪梦科技
发布2020-05-11 16:59:28
7.6K0
发布2020-05-11 16:59:28
举报
文章被收录于专栏:ITCoderITCoder

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选项,加上软件包的名字:

代码语言:javascript
复制
sudo rpm -ivh package.rpm

这个-v选项告诉rpm显示详细日志,-h选项显示安装进度。

通过将 RPM 软件包的 URL 地址提供给rpm命令,可以避免下载到本地的步骤:

代码语言:javascript
复制
sudo rpm -ivh https://example.com/package.rpm

想要升级一个 RPM 软件包,使用-u选项。如果软件包没有安装,则会直接进行安装:

代码语言:javascript
复制
sudo rpm -Uvh package.rpm

如果你正在安装或者升级的软件包依赖于其他没有安装的依赖包,那么rpm命令将会显示一个清单,列出所有缺失的依赖包。你可以手动下载并安装这些依赖包。

如果想要在没有安装所有依赖包的情况下,继续安装一个 RPM 软件包,请使用--nodeps选项:

代码语言:javascript
复制
sudo rpm -Uvh --nodeps package.rpm

想要移除(擦除)一个 RPM 软件包,使用-e选项:

代码语言:javascript
复制
sudo rpm -e package.rpm

当你想要移除一个软件包,但是不想移除它的依赖包时,使用--nodeps选项。

代码语言:javascript
复制
sudo rpm -evh --nodeps package.rpm

--test选项告诉rpm模拟运行安装或者移除命令。它仅仅显示这个命令是否会正常运行。

代码语言:javascript
复制
sudo rpm -Uvh --test package.rpm

二、查询 RPM 软件包

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

想要查看某个包是否被安装,将包名传给rpm -q命令。下面的命令将会显示 OpenJDK14 是否被安装在系统上:

代码语言:javascript
复制
sudo rpm -q java-11-openjdk-devel

如果这个软件包被安装,你将会看下这样的显示:

代码语言:javascript
复制
java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64

传递-i可以获得更多关于被查询软件包的信息:

代码语言:javascript
复制
sudo rpm -qi java-11-openjdk-devel

想要获得一个被安装 RPM 软件包的所有文件列表:

代码语言:javascript
复制
sudo rpm -ql package

如果你想查找某个特殊文件属于哪个被安装软件包,输入:

代码语言:javascript
复制
sudo rpm -qf /path/to/file

想要获得你系统上所有已经安装的软件包的列表,使用-a选项:

代码语言:javascript
复制
sudo rpm -qa

三、验证 RPM 软件包

当验证一个软件包时,rpm命令检测一个软件包所安装的每个文件是否都存在系统上,文件的摘要,归属,权限等等。

想要验证一个已经安装的软件包,使用-v选项。例如,想要验证 openldap 包,你可以输入:

代码语言:javascript
复制
sudo rpm -V openldap-2.4.46-9.el8.x86_64

如果验证通过,这个命令不会输出任何结果。否则,如果某些检测失败,它会输出一些错误,提示本次测试失败。

例如,下面的输入显示,文件的 mTime 已经被修改(”T“):

代码语言:javascript
复制
.......T.  c /etc/openldap/ldap.conf

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

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

代码语言:javascript
复制
sudo rpm -Va

四、总结

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年12月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装,更新和移除 RPM 软件包
  • 二、查询 RPM 软件包
  • 三、验证 RPM 软件包
  • 四、总结
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档