游乐游手机版
首页/系统平台/文章详情

Linux RPM软件包安装更新卸载方法

时间:2026-06-24 22:33
Linux下的软件包管理:RPM 完全指南 在 Linux 操作系统的软件管理中,几乎绕不开 RPM 这款核心工具。RPM 的全称为 Redhat Package Manager,由 Redhat 公司提出,专门用于管理 Linux 下的软件包。简而言之,Linux 系统在安装时,除了几个核心模块之

Linux下的软件包管理:RPM 完全指南

在 Linux 操作系统的软件管理中,几乎绕不开 RPM 这款核心工具。RPM 的全称为 Redhat Package Manager,由 Redhat 公司提出,专门用于管理 Linux 下的软件包。简而言之,Linux 系统在安装时,除了几个核心模块之外,其余绝大多数模块都是通过 RPM 来完成的。RPM 提供了五种核心操作模式:安装、卸载、升级、查询和验证,满足了日常软件管理的大部分需求。

接下来,我们逐一深入这几种操作的具体用法与实战技巧。

RPM 安装操作

最基本的安装命令非常简洁:

rpm -i 需要安装的包文件名

举个例子,如果你想安装一个名为 example.rpm 的软件包,直接执行:

rpm -i example.rpm

不过,在实际工作中,更常用的还是带参数的版本。加上 -v 可以在安装过程中显示正在安装的文件信息,再加上 -h 则会显示安装进度条。因此,完整命令通常是:

rpm -ivh example.rpm

这组参数组合在一起,已经成为日常安装 RPM 包的标准操作方式。

RPM 查询操作

查询操作可能是日常使用频率最高的功能之一。它的基本命令是:

rpm -q …

在此基础上,可以搭配不同的附加参数来满足各种查询需求:

  • -a:查询所有已经安装的包
  • -i:显示安装包的信息
  • -l:显示安装包中的所有文件被安装到哪些目录下
  • -s:显示安装包中的所有文件状态及被安装到哪些目录下
  • -p:查询的是 安装包 的信息(注意,是还没安装的 .rpm 文件)
  • -f:查询的是 已安装的某文件 所属的包信息

来看几个实际例子:

rpm -qa | grep tomcat4          # 查看 tomcat4 是否被安装
rpm -qip example.rpm            # 查看 example.rpm 安装包的信息
rpm -qif /bin/df                # 查看 /bin/df 文件所在安装包的信息
rpm -qlf /bin/df                # 查看 /bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下

注意,-p 和 -f 的区别很关键:前者针对的是未安装的 .rpm 文件,后者针对的是系统中已有的文件。

RPM 卸载操作

卸载操作的命令是:

rpm -e 需要卸载的安装包

卸载前,别忘了先用 rpm -q … 查出确切的包名。例如:

rpm -e tomcat4

这里有个坑需要留意:包名不能带 .rpm 后缀。例如,卸载 proftpd-1.2.8-1 时,正确写法是 rpm -e proftpd-1.2.8-1 或 rpm -e proftpd,但绝对不能写成 rpm -e proftpd-1.2.8-1.i386.rpm。

如果遇到“... is needed by ...”这样的提示,说明该包被其他软件依赖,不能随意卸载。可以添加 --nodeps 参数强制卸载,但风险需自行承担。

RPM 升级操作

升级的操作同样简单:

rpm -U 需要升级的包

实际使用中,通常也会带上 -v 和 -h 参数:

rpm -Uvh example.rpm

RPM 验证操作

验证操作用于检查文件是否被篡改过。命令是:

rpm -V 需要验证的包

比如验证 /etc/tomcat4/tomcat4.conf 这个文件:

rpm -Vf /etc/tomcat4/tomcat4.conf

输出信息类似:S.5....T c /etc/tomcat4/tomcat4.conf。其中,S 表示文件大小被改过,T 表示文件日期被改过。更多验证信息的说明,可以用 man rpm 查阅。

RPM 的其他附加命令

除了刚才提到的,还有几个常用参数值得记一下:

  • --force:强制操作,比如强制安装或删除
  • --requires:显示该包的依赖关系
  • --nodeps:忽略依赖关系并继续操作

可以说,RPM 的出现让 Linux 下的软件安装、卸载和升级变得容易多了。它原本是 Red Hat 发行版的专属工具,但由于遵循 GPL 规则且功能强大,逐渐被其他发行版广泛采纳。

语法和选项

完整的 RPM 命令语法是:

rpm (选项)(参数)

其中,选项部分非常丰富,列几个常用的:

-a:查询所有套件
-b<完成阶段><套件档>+ 或 -t<完成阶段><套件档>+:设置包装套件的完成阶段
-c:只列出组态配置文件(需配合 -l 使用)
-d:只列出文本文件(需配合 -l 使用)
-e<套件档> 或 --erase<套件档>:删除指定的套件
-f<文件>+:查询拥有指定文件的套件
-h 或 --hash:安装时列出标记
-i:显示套件的相关信息
-i<套件档> 或 --install<套件档>:安装指定的套件档
-l:显示套件的文件列表
-p<套件档>+:查询指定的 RPM 套件档
-q:使用询问模式
-R:显示套件的关联性信息
-s:显示文件状态(需配合 -l 使用)
-U<套件档> 或 --upgrade<套件档>:升级指定的套件档
-v:显示指令执行过程
-vv:详细显示指令执行过程,便于排错

参数部分很简单,就是你要操作的 RPM 软件包文件名。

实战:安装与卸载的进阶技巧

如何安装 rpm 软件包

最标准的安装方式是:

rpm -ivh your-package.rpm

安装时如果遇到 ... conflict with ... 的警告,说明要安装的包里有些文件会覆盖现有文件。默认情况下无法继续,可以加 --force 参数强制安装。如果遇到 ... is needed by ... 或 ... is not installed ...,说明缺少依赖,可以用 --nodeps 忽略。不过要注意,rpm -i --force --nodeps 这种组合虽然能安装任何包,但强行安装的软件可能无法完全正常工作。

如何安装 .src.rpm 软件包

以 .src.rpm 结尾的包是包含源代码的,安装时需要编译。有两种方法:

方法一:

rpm -i your-package.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp your-package.specs   # 一个和你的软件包同名的specs文件
cd /usr/src/redhat/BUILD/your-package/   # 一个和你的软件包同名的目录
./configure                         # 和编译普通源码一样,可以加参数
make
make install

方法二:

rpm -i you-package.src.rpm
cd /usr/src/redhat/SPECS

前两步和方法一相同,然后执行:

rpmbuild -bb your-package.specs   # 一个和你的软件包同名的specs文件

这时在 /usr/src/redhat/RPM/i386/(也可能是 i686、noarch 等)目录下,会生成一个编译好的二进制 RPM 包。最后执行 rpm -i new-package.rpm 安装即可。

如何不安装但提取 rpm 包中的文件

可以用 rpm2cpio 和 cpio 这两个工具配合:

rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories

其中,-i 和 --extract 相同,表示提取文件;-v 显示执行过程;-d 和 --make-directory 相同,表示根据包中文件路径建立目录;-m 保持文件的更新时间。

查看与 rpm 包相关的文件和信息

下面以软件包 mysql-3.23.54a-11 为例,演示几种常见查询场景。

1. 查看系统中安装的所有 rpm 包

rpm -qa      # 列出所有安装过的包

如果想查找包含某个字符串(比如 sql)的包:

rpm -qa | grep sql

2. 获取某个包的完整名称

rpm -q mysql

这条命令会返回系统中安装的 mysql 包全名,比如 mysql-3.23.54a-11。

3. 查看一个包中的文件安装到了哪些目录

rpm -ql 包名

注意,包名不带 .rpm 后缀。如果只想知道可执行程序的位置,也可以用 which 命令,比如 which mysql。

4. 查看一个包中包含哪些文件

  • 对于未安装的包:rpm -qlp ****.rpm
  • 对于已安装的包:rpm -ql ****.rpm

5. 获取包的版本、用途等信息

  • 对于未安装的包:rpm -qip ****.rpm
  • 对于已安装的包:rpm -qi ****.rpm

6. 查找某个程序是由哪个包安装的

rpm -qf `which 程序名`    # 返回包的全名
rpm -qif `which 程序名`   # 返回包的有关信息
rpm -qlf `which 程序名`   # 返回包的文件列表

注意,这里的符号不是引号,而是键盘左上角的反引号 `。也可以把 qilf 组合在一起用,同时输出包信息和文件列表。

7. 查找某个文件属于哪个包

这个方法适用于任何文件,不限于可执行程序。先用 whereis 或 which 获取文件的完整路径,然后用 rpm -qf:

whereis ftptop
ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz

rpm -qf /usr/bin/ftptop
proftpd-1.2.8-1

rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
proftpd-1.2.8-1

以上这些就是 RPM 包管理的核心操作了。熟练之后,你会发现 Linux 下的软件管理其实相当顺手。

来源:https://www.jb51.net/LINUXjishu/578917.html
上一篇微软现已发布Win11 Canary通道最新预览版28000.1199(KB5068860)例行更新 下一篇Linux虚拟机快照拍摄与管理方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。