【Linux】用 RPM 管理软件包(rpm)

摘要

本文探讨如何在 Linux 中用红帽软件包管理器 RPM 来管理系统中的软件。

引言

因为 Linux 的不同发行版本有很大的不同,开发者在某个 Linux 版本开发和编译的程序,直接放到另一个发行版本下有非常大的可能性无法运行。因此,早期的 Linux 软件都是通过源代码来分发的。使用者基本都是通过在自己的平台上,重新编译源代码的方式来安装软件的。这种编译源代码的方式比较繁琐,要求用户有一定的编程基础,普通用户往往难以掌握。

为了解决这一问题,红帽公司开发了一个包管理工具 Red Hat Package Manager,简称 RPM。它是 Linux 下软件资源最为丰富的软件包类型,是使用最为广泛的软件包管理器。也是 CentOS 的默认软件包管理器。

简单来说,RPM 将软件编译好的二进制文件、所依赖的动态库文件,以及配置文件打包压缩到一个文件中,这个文件就被成为 RPM 软件包。用户使用该文件安装软件时,RPM 就将该文件解压到目标操作系统上,安装过程动态生成一些文件也一并安装到系统中。RPM 只能管理以 RPM 形式封装的软件包。对于普通用户,RPM 使得软件管理变得十分容易。使用简单的命令就能完成 RPM 包的安装、卸载和升级。


每个 RPM 软件包的名字都包含了一些重要的信息。例如,tsclient-2.0.2-10.e16.x86_64。

  • tsclient:软件名
  • 2.0.2-10.e16:版本号
  • x86_64:适用硬件架构

硬件架构主要有以下几种类型

  • x86_64:表示该软件只能安装到拥有 64 位 CPU 的机器上
  • i386/i586/i686:表示只能安装到 32 位 CPU 的机器上
  • noarch:表示适用于所有架构的计算机

用法

rpm 软件包可以从 rpmfind.net 查看,复制包的链接后使用 wget 下载。

  • rpm -q xxx:未安装的包显示 package xxx is not installed
  • rpm -ivh xxx.rpm:安装包。-v 显示安装进度;-h 以 # 作为输出进度条
  • rpm -q xxx:已安装的包显示包的全名
  • rpm -e xxx:卸载软件包(用上一步查询的包的全名来卸载)

提示

rpm 有一个久为用户诟病的缺点,就是无法解决软件包的依赖问题。若要安装的软件包有依赖,我们就得先手动安装依赖项,然后再安装该软件包,十分的繁琐。为解决该问题,RHEL 和 CentOS 中引进了一个软件 yum(yellowdog updater modified)。我们将在下一篇文章中进行讨论。

参考

中国大学 MOOC | Linux 系统管理 | 主题 09 管好软件 | 小节 1 用 RPM 管理软件包

猜你喜欢

转载自blog.csdn.net/qq_42951560/article/details/125222480