专栏首页ITCoderLinux 中的 RPM 命令

Linux 中的 RPM 命令

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 是否被安装在系统上:

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网站。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在 CentOS 上安装 RPM 软件包

    RPM 是一个被 Red Hat 和它的衍生版本例如 CentOS 和 Fedora 使用的包管理系统。

    雪梦科技
  • 如何升级到 Ubuntu 20.04

    Ubuntu 20.04 LTS (Focal Fossa) 发布于2020年4月23日,并且它将会被支持5年。它带来了很多新的软件包和主要软件包的升级,包括最...

    雪梦科技
  • 在 Debian 中如何将用户添加到 Sudoers

    sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。

    雪梦科技
  • Python内置函数eval()用法及其安全问题

    Python内置函数eval()用来对表达式进行求值: >>> eval('3+5') 8 >>> a = 3 >>> b = 5 >>> eval('a+b'...

    Python小屋屋主
  • 自适应表格字符换行 单行溢出省略号table-layout: fixed;

    让单行文字超出的时候使用点点点表示(Chrome目前有属性可以让多行文字点点点,且点的位置是在中间,见下2行示例代码)。

    javascript.shop
  • 纹理特征提取方法:LBP, 灰度共生矩阵

    纹理特征提取方法:LBP, 灰度共生矩阵 在前面的博文《图像纹理特征总体简述》中,笔者总结了图像纹理特征及其分类。在这里笔者对其中两种算法介绍并总结。 参考网址...

    剑影啸清寒
  • 斯坦福吴恩达团队提出NGBoost:用于概率预测的自然梯度提升

    自然梯度提升(NGBoost / Natural Gradient Boosting)是一种算法,其以通用的方式将概率预测能力引入到了梯度提升中。预测式不确定性...

    Datawhale
  • 斯坦福吴恩达团队提出NGBoost:用于概率预测的自然梯度提升

    自然梯度提升(NGBoost / Natural Gradient Boosting)是一种算法,其以通用的方式将概率预测能力引入到了梯度提升中。预测式不确定性...

    机器之心
  • 简化微人事部署,Flyway 搞起来

    虽然我之前录了一个微人事部署视频(新版微人事部署教程来啦),但是由于这次升级涉及到了 Redis 和 RabbitMQ,所以在本地跑微人事还是一件比较麻烦的事情...

    江南一点雨
  • 深度学习应用系统分析:应用组合和形态矩阵找到正确路径

    【新智元导读】本文收录了arXiv.org上关于深度学习的一些最新的研究论文,列出了这些文章的内容,包括“深度学习八大灵感应用”、“深度学习用例”、“科学与工程...

    新智元

扫码关注云+社区

领取腾讯云代金券