前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux RPM 命令:安装、卸载、升级、查询 RPM 包的 15 个示例

Linux RPM 命令:安装、卸载、升级、查询 RPM 包的 15 个示例

作者头像
玖柒的小窝
修改2021-11-04 09:25:51
9.4K0
修改2021-11-04 09:25:51
举报
文章被收录于专栏:各类技术文章~

RPM 命令用于在 Linux 系统上安装、卸载、升级、查询、列出和检查 RPM 包。

  • RPM是Red Hat Package Manager的缩写。

通过root权限,您可以使用带有适当选项的rpm命令来管理rpm软件包。  

在本文中,让我们回顾 15 个 rpm 命令的实际示例。

让我们以 Mysql Client 的 rpm 为例,运行所有示例。

1. 使用 rpm -ivh 安装 RPM 包

RPM 文件名包含包名、版本、发行版和架构名。

例如,在 MySQL-client-3.23.57-1.i386.rpm 文件中:

  • MySQL-client – 包名
  • 3.23.57 – 版本
  • 1 – 发布
  • i386 – 架构

当您安装 RPM 时,它会检查您的系统是否适合 RPM 包中包含的软件,确定 rpm 包内文件的安装位置,将它们安装到您的系统上,并将该软件添加到其数据库中安装的 RPM 包。

以下 rpm 命令安装 Mysql 客户端包。

代码语言:javascript
复制
# rpm -ivh  MySQL-client-3.23.57-1.i386.rpm
Preparing...                ########################################### [100%]
   1:MySQL-client           ########################################### [100%]

rpm 命令和选项

  • -i : 安装一个包
  • -v : 详细
  • -h :在解压包存档时打印散列标记。

2.使用rpm -qa查询所有RPM包

您可以使用 rpm 命令查询系统中安装的所有软件包。

代码语言:javascript
复制
# rpm -qa
cdrecord-2.01-10.7.el5
bluez-libs-3.7-1.1
setarch-2.0-1.1
.
.
  • -q 查询操作
  • -a 查询所有已安装的包

要确定系统上是否安装了特定的 rpm 软件包,请按如下所示组合 rpm 和 grep 命令。以下命令检查您的系统上是否安装了 cdrecord 包。

代码语言:javascript
复制
# rpm -qa | grep 'cdrecord'

3. 使用 rpm -q 查询特定的 RPM 包

上面的例子列出了所有当前安装的包。安装包后检查安装情况,您可以查询特定的包并进行验证,如下所示。

代码语言:javascript
复制
# rpm -q MySQL-client
MySQL-client-3.23.57-1

# rpm -q MySQL
package MySQL is not installed

注意:要查询包,您应该指定确切的包名称。如果包名不正确,那么 rpm 命令将报告该包未安装。

4. 使用 rpm –queryformat 查询各种格式的 RPM 包

Rpm 命令提供了一个选项 –queryformat,它允许您提供标题标签名称,以列出包。用 in {} 将标头标签括起来。

代码语言:javascript
复制
# rpm -qa --queryformat '%{name}-%{version}-%{release} %{size}\n'
cdrecord-2.01-10.7 12324
bluez-libs-3.7-1.1 5634
setarch-2.0-1.1 235563
.
.

#

5.文件属于哪个RPM包?– 使用 rpm -qf

假设您有文件列表,并且您想知道哪个包拥有所有这些文件。rpm 命令具有实现此目的的选项。

以下示例显示 /usr/bin/mysqlaccess 文件是 MySQL-client-3.23.57-1 rpm 的一部分。

代码语言:javascript
复制
# rpm -qf /usr/bin/mysqlaccess
MySQL-client-3.23.57-1
  • -f : 文件名

6. 使用 rpm -qdf 找到拥有文件的包的文档

使用以下内容了解拥有文件的包的文档列表。以下命令给出了与 mysql 包相关的所有手册页的位置。

代码语言:javascript
复制
# rpm -qdf /usr/bin/mysqlaccess
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlshow.1.gz
  • -d :参考文档。

7. 使用 rpm -qi 安装 RPM 包的信息

rpm 命令使用 rpm -qi 提供有关已安装 pacakge 的大量信息,如下所示:

代码语言:javascript
复制
# rpm -qi MySQL-client
Name        : MySQL-client                 Relocations: (not relocatable)
Version     : 3.23.57                           Vendor: MySQL AB
Release     : 1                             Build Date: Mon 09 Jun 2003 11:08:28 PM CEST
Install Date: Mon 06 Feb 2020 03:19:16 AM PST               Build Host: build.mysql.com
Group       : Applications/Databases        Source RPM: MySQL-3.23.57-1.src.rpm
Size        : 5305109                          License: GPL / LGPL
Signature   : (none)
Packager    : Lenz Grimmer
URL         : http://www.mysql.com/
Summary     : MySQL - Client
Description : This package contains the standard MySQL clients.

如果您有想要安装的 RPM 文件,但想在安装前了解有关它的更多信息,您可以执行以下操作:

代码语言:javascript
复制
# rpm -qip MySQL-client-3.23.57-1.i386.rpm
Name        : MySQL-client                 Relocations: (not relocatable)
Version     : 3.23.57                           Vendor: MySQL AB
Release     : 1                             Build Date: Mon 09 Jun 2020 11:08:28 PM CEST
Install Date: (not installed)               Build Host: build.mysql.com
Group       : Applications/Databases        Source RPM: MySQL-3.23.57-1.src.rpm
Size        : 5305109                          License: GPL / LGPL
Signature   : (none)
Packager    : Lenz Grimmer
URL         : http://www.mysql.com/
Summary     : MySQL - Client
Description : This package contains the standard MySQL clients.
  • -i : 查看有关 rpm 的信息
  • -p : 指定包名

8. 使用 rpm -qlp 列出包中的所有文件

要列出 RPM 包的内容,请使用以下命令,该命令将列出文件而不解压到本地目录文件夹中。

代码语言:javascript
复制
$ rpm -qlp ovpc-2.1.10.rpm
/usr/bin/mysqlaccess
/usr/bin/mysqldata
/usr/bin/mysqlperm
.
.
/usr/bin/mysqladmin
  • q : 查询rpm文件
  • l : 列出包中的文件
  • p : 指定包名

9. 使用 rpm -qRP 列出依赖包

要查看此包所依赖的包列表,

代码语言:javascript
复制
# rpm -qRp MySQL-client-3.23.57-1.i386.rpm
/bin/sh
/usr/bin/perl

10. 使用 rpm -qsp 查看包中文件的状态

以下命令用于查找 RPM 包中所有文件的状态(已安装、已替换或正常)。

代码语言:javascript
复制
# rpm -qsp MySQL-client-3.23.57-1.i386.rpm
normal        /usr/bin/msql2mysql
normal        /usr/bin/mysql
normal        /usr/bin/mysql_find_rows
normal        /usr/bin/mysqlaccess
normal        /usr/bin/mysqladmin
normal        /usr/bin/mysqlbinlog
normal        /usr/bin/mysqlcheck
normal        /usr/bin/mysqldump
normal        /usr/bin/mysqlimport
normal        /usr/bin/mysqlshow
normal        /usr/share/man/man1/mysql.1.gz
normal        /usr/share/man/man1/mysqlaccess.1.gz
normal        /usr/share/man/man1/mysqladmin.1.gz
normal        /usr/share/man/man1/mysqldump.1.gz
normal        /usr/share/man/man1/mysqlshow.1.gz

11. 使用 rpm -Vp 验证特定的 RPM 包

验证包会将有关包中已安装文件的信息与有关从 rpm 数据库中存储的包元数据中获取的文件的信息进行比较。在以下命令中,-V 用于验证,-p 选项用于指定要验证的包名称。

代码语言:javascript
复制
# rpm -Vp MySQL-client-3.23.57-1.i386.rpm
S.5....T c /usr/bin/msql2mysql
S.5....T c /usr/bin/mysql
S.5....T c /usr/bin/mysql_find_rows
S.5....T c /usr/bin/mysqlaccess

上述输出中的字符表示以下内容:

  • S 文件大小不同
  • M 模式不同(包括权限和文件类型)
  • 5 MD5 和不同
  • D 设备主要/次要编号不匹配
  • l readlink(2) 路径不匹配
  • U 用户所有权不同
  • G 组所有权不同
  • T mTime 不同

12. 使用 rpm -Vf 验证包拥有文件

以下命令验证拥有给定文件名的包。

代码语言:javascript
复制
# rpm -Vf /usr/bin/mysqlaccess
S.5....T c /usr/bin/mysql
#

13. 使用 rpm -Uvh 升级 RPM 包

升级软件包与安装软件包类似,但 RPM 会在安装新软件包之前自动卸载软件包的现有版本。如果未找到旧版本的软件包,升级选项仍将安装它。

代码语言:javascript
复制
# rpm -Uvh MySQL-client-3.23.57-1.i386.rpm
Preparing... 			########################################### [100%]
1:MySQL-client          ###########################################

14. 使用 rpm -e 卸载 RPM 包

使用 -e 删除已安装的 rpm 包,如下所示。卸载后,可以使用rpm -qa查询,验证卸载。

代码语言:javascript
复制
# rpm -ev MySQL-client

15. 使用 rpm -Va 验证所有 RPM 包

以下命令验证所有已安装的软件包。

代码语言:javascript
复制
# rpm -Va
S.5....T c /etc/issue
S.5....T c /etc/issue.net
S.5....T c /var/service/imap/ssl/seed
S.5....T c /home/httpd/html/horde/ingo/config/backends.php
.
.
S.5....T c /home/httpd/html/horde/ingo/config/prefs.php
S.5....T c /etc/printcap

本文系转载,前往查看

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

本文系转载前往查看

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用 rpm -ivh 安装 RPM 包
  • 2.使用rpm -qa查询所有RPM包
  • 3. 使用 rpm -q 查询特定的 RPM 包
  • 4. 使用 rpm –queryformat 查询各种格式的 RPM 包
  • 5.文件属于哪个RPM包?– 使用 rpm -qf
  • 6. 使用 rpm -qdf 找到拥有文件的包的文档
  • 7. 使用 rpm -qi 安装 RPM 包的信息
  • 8. 使用 rpm -qlp 列出包中的所有文件
  • 9. 使用 rpm -qRP 列出依赖包
  • 10. 使用 rpm -qsp 查看包中文件的状态
  • 11. 使用 rpm -Vp 验证特定的 RPM 包
  • 12. 使用 rpm -Vf 验证包拥有文件
  • 13. 使用 rpm -Uvh 升级 RPM 包
  • 14. 使用 rpm -e 卸载 RPM 包
  • 15. 使用 rpm -Va 验证所有 RPM 包
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档