Linux rpm 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何有效使用 rpm(Red Hat Package Manager)命令,这是一个强大的工具,用于管理使用 RPM 包格式的 Linux 发行版(如 CentOS、RHEL 和 Fedora)中的软件包。你将探索 rpm 命令的各种用例,包括安装、升级和删除 RPM 包,查询已安装包的信息,以及验证已安装包的完整性。本实验将提供实际示例和逐步指导,帮助你熟练掌握使用 rpm 命令进行包管理。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") subgraph Lab Skills linux/sudo -.-> lab-422897{{"Linux rpm 命令实战示例"}} end

理解 rpm 命令及其使用场景

在这一步中,我们将探索 rpm(Red Hat Package Manager)命令,这是一个强大的工具,用于管理使用 RPM 包格式的 Linux 发行版(如 CentOS、RHEL 和 Fedora)中的软件包。

rpm 命令允许你执行各种包管理任务,包括:

  • 安装、升级和删除 RPM 包
  • 查询已安装包的信息
  • 验证已安装包的完整性
  • 管理包的依赖关系

让我们从理解 rpm 命令的基本用法开始。

## 显示 rpm 命令的帮助信息
sudo rpm --help

示例输出:

Usage: rpm [options] <command>
Options most frequently used with single sub-commands:
  -v, --verbose        增加输出的详细程度
  -vv                  显示调试输出
  -h, --hash           在包安装时打印哈希标记(与 -v 一起使用效果更佳)
  -i, --install        安装一个包
  -U, --upgrade        升级一个包
  -F, --freshen        如果已安装,则升级一个包
  -e, --erase          删除一个包
  -q, --query          查询已安装包的信息
  -p, --package        查询一个包文件
  --nodeps             忽略包的依赖关系
  --force              强制执行操作,覆盖依赖关系
  --test               测试操作,但不执行
  --justdb             更新数据库,但不修改文件系统
  --prefix <dir>       设置安装前缀
  --relocate <old>=<new>  将包重新定位到新的前缀

rpm 命令具有广泛的选项和子命令,允许你执行各种包管理任务。在接下来的步骤中,我们将探索 rpm 命令的一些最常见的使用场景。

安装和管理 RPM 包

在这一步中,我们将学习如何使用 rpm 命令安装、升级和删除 RPM 包。

首先,让我们安装一个示例 RPM 包。我们将使用 "htop" 包,这是一个流行的交互式进程查看器。

## 安装 htop 包
sudo rpm -i https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/h/htop-2.2.0-1.el7.x86_64.rpm

示例输出:

Preparing...                          ################################## [100%]
Updating / installing...
   1:htop-2.2.0-1.el7                 ################################## [100%]

现在,让我们验证包是否正确安装:

## 检查已安装的 htop 包
rpm -q htop

示例输出:

htop-2.2.0-1.el7.x86_64

要将 htop 包升级到新版本,我们可以使用 --upgrade-U 选项:

## 升级 htop 包
sudo rpm -U https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/h/htop-3.0.5-1.el7.x86_64.rpm

示例输出:

Preparing...                          ################################## [100%]
Updating / installing...
   1:htop-3.0.5-1.el7                 ################################## [100%]

最后,让我们使用 --erase-e 选项删除 htop 包:

## 删除 htop 包
sudo rpm -e htop

示例输出:

Removed htop-3.0.5-1.el7.x86_64

在这一步中,你学习了如何使用 rpm 命令安装、升级和删除 RPM 包。涵盖的关键命令包括 rpm -i 用于安装,rpm -U 用于升级,以及 rpm -e 用于删除。

执行 RPM 包查询和验证

在这一步中,我们将学习如何使用 rpm 命令对已安装的 RPM 包执行各种查询和验证。

首先,让我们查询一个已安装包的信息。我们以 "bash" 包为例:

## 查询 bash 包的信息
sudo rpm -qi bash

示例输出:

Name        : bash
Version     : 5.1.16
Release     : 1.fc36
Architecture: x86_64
Install Date: Tue 04 Apr 2023 12:34:56 PM UTC
Group       : System Environment/Shells
Size        : 12206283
License     : GPLv3+
Signature   : RSA/SHA256, Tue 04 Apr 2023 12:34:56 PM UTC, Key ID 3c6e21a5b7d1e4b3
Source RPM  : bash-5.1.16-1.fc36.src.rpm
Build Date  : Tue 04 Apr 2023 12:34:56 PM UTC
Packager    : Fedora Project
URL         : http://www.gnu.org/software/bash/
Summary     : The GNU Bourne Again Shell
Description : The bash package contains the Bourne Again Shell (bash), a sh-compatible shell or command language interpreter.

接下来,让我们验证一个已安装包的完整性。我们以 "coreutils" 包为例:

## 验证 coreutils 包
sudo rpm -V coreutils

示例输出:

.......T     /usr/bin/chgrp
.......T     /usr/bin/chown
.......T     /usr/bin/cp
.......T     /usr/bin/dd
.......T     /usr/bin/df

输出显示了自安装以来 coreutils 包中已修改的文件。句点表示未修改的文件,字母表示不同类型的更改(例如文件权限、所有权或内容)。

最后,让我们查询一个包安装的文件列表。我们再次使用 "bash" 包:

## 列出 bash 包安装的文件
sudo rpm -ql bash

示例输出:

/bin/bash
/etc/bash.bashrc
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/bashbug
/usr/include/bash/bashbuild.h
/usr/include/bash/bashtypes.h
/usr/include/bash/rltypedefs.h
/usr/include/bash/shmbutil.h
/usr/lib/bash
/usr/lib/tmpfiles.d/bash.conf
/usr/share/doc/bash
/usr/share/info/bash.info.gz
/usr/share/man/man1/bash.1.gz
/usr/share/man/man1/bashbug.1.gz

在这一步中,你学习了如何使用 rpm 命令对已安装的 RPM 包执行各种查询和验证。涵盖的关键命令包括 rpm -qi 用于查询包信息,rpm -V 用于包验证,以及 rpm -ql 用于列出安装的文件。

总结

在本实验中,我们首先探索了 rpm(Red Hat Package Manager)命令,这是一个强大的工具,用于管理使用 RPM 包格式的 Linux 发行版中的软件包。我们了解到,rpm 命令允许我们执行各种包管理任务,例如安装、升级和删除 RPM 包,查询已安装包的信息,验证已安装包的完整性,以及管理包的依赖关系。接着,我们学习了如何使用 rpm 命令安装、升级和删除 RPM 包。最后,我们介绍了如何执行 RPM 包查询和验证,这对于故障排除和维护系统健康非常有用。

Linux 命令速查表