收集云服务器优惠信息
记录云服务器使用心得

20个在Linux系统中使用RPM命令的典型示例

RPM(Red Hat Package Manager)是一个默认的开源且广泛使用的包管理实用程序,适用于基于Red Hat的系统,例如CentOS Fedora、Rocky和Alma Linux。

RPM包管理工具使系统管理员和用户能够在Unix/Linux操作系统上安装、更新、卸载、查询、验证和管理软件包,以前称为.rpm文件,它包含编译好的软件程序和软件包所需的库。

在本文中,小编简单介绍20个有用的RPM命令示例,可能对你有所帮助。借助这些RPM命令,你可以管理Linux系统上软件包的安装、更新和删除。

关于RPM的几个事实

以下是有关RPM(Red Hat Package Manager)的一些事实:

  • RPM可免费获取并根据通用公共许可证(GPL)发布。
  • RPM维护所有已安装软件包的数据库,并将此信息存储在/var/lib/rpm目录中。
  • RPM是在Linux系统上安装软件包的主要方法,如果软件包是使用源代码安装的,RPM不会管理它们。
  • RPM使用.rpm文件进行操作,其中包含重要的包信息,如其身份、来源、依赖项、版本信息等。
RPM命令基本模式

以下是RPM命令的主要模式:

  • Install:rpm -i命令在系统上安装新软件包。
  • Upgrade:rpm -U命令将现有包升级到更新版本。
  • Remove:rpm -e命令从系统中卸载或删除软件包。
  • Query:rpm -q命令查询RPM数据库以获取有关已安装软件包的信息。
  • Verify:rpm -V命令验证已安装的软件包文件的完整性。
  • Freshen:rpm -F仅当已安装软件包时,该命令才会升级或安装该软件包。
  • Rebuild Database:rpm --rebuilddb命令重建RPM数据库,解决数据库损坏问题。
  • Import GPG Key:rpm --import命令导入用于包签名验证的GPG密钥。
  • Query All :rpm -qa命令列出系统上所有已安装的软件包。
  • Query Files:rpm -ql命令列出特定包安装的所有文件。
  • Query Documentation:rpm -qd命令列出包提供的文档文件。
  • Query Dependencies:rpm -qR命令列出包的运行时依赖关系。
  • Query Provides:rpm -q --provides命令列出了包提供的功能。
  • Query Requires:rpm -q --requires命令列出包所需的依赖项。
哪里可以找到RPM软件包

你可以在多个位置找到RPM软件包,具体取决于你的Linux发行版。你可以在以下常见位置找到并下载所有RPM软件包。

  • https://www.redhat.com
  • https://pkgs.org/
  • https://rpm.pbone.net/

请记住,在Linux系统中安装软件包时,必须是root用户,使用root权限,可以使用适当选项来管理rpm命令。

RPM命令

1、检查RPM包签名

在将软件包安装到Linux系统上之前,请务必检查软件包的PGP签名,并确保其完整性和来源正确。使用以下带有--checksig(检查签名)选项的命令来检查名为Hardinfo的包的签名:

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2、安装RPM包

要安装RPM软件包,请使用以下带有-ivh选项的命令,这将在Linux系统上安装名为Hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm的rpm软件包。

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

让我们分解一下上述命令的组成部分:

  • -i: 安装一个包
  • -v:以详细模式显示,使显示更友好
  • -h:打印井号(#)以显示安装进度

3、安装前检查RPM包的依赖关系

假设你想在安装或升级包之前进行依赖性检查。例如,使用以下命令检查hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm包的依赖关系。该命令查询并显示“ hardinfo ”包所需的运行时依赖项,这有助于在安装包之前识别并确保满足所有必需的依赖项。

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

让我们分解一下上述命令的组成部分:

  • -q:查询包。
  • -p:列出该包提供的功能。
  • -R:列出该包所依赖的功能。

4、安装无依赖的RPM包

要安装没有依赖关系的rpm包,可以使用--nodeps选项,它会强制安装rpm包,而不检查或解决依赖关系。

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

上面的命令通过忽略依赖项错误来强制安装rpm包,但如果这些依赖项文件丢失,那么程序将根本无法运行,直到你安装它们。

5、如何查看已安装的RPM包

要检查已安装的rpm包,可以使用-q选项,该选项将查询并显示已安装的rpm包的版本信息:

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6、查找RPM文件的安装位置

要查看已安装的RPM软件包的所有文件,请使用带有-ql(查询列表)的rpm命令:

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7、列出最近安装的RPM包

使用以下rpm命令,带有-qa(查询所有)选项,将列出所有最近安装的RPM软件包:

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8、列出所有已安装的RPM软件包

键入以下命令以打印Linux系统上已安装软件包的所有名称:

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9、升级RPM包

如果我们想要升级任何 RPM 包,将使用“升级–U”选项。使用此选项的主要优点之一是,它不仅会升级任何软件包的最新版本,而且还会维护旧软件包的备份,以便万一新升级的软件包不运行以前安装的软件包可以再次使用。

rpm -Uvh Hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10、删除RPM包

要卸载一个RPM软件包,例如,使用软件包名称hardinfo,而不是原始软件包名称hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm。使用-e(删除)选项来移除该软件包。

rpm -evv hardinfo

11、如何删除没有依赖项的RPM包

–nodeps(不检查依赖项)选项会强制从系统中删除RPM软件包。但请注意,删除特定软件包可能会破坏其他正常工作的应用程序:

rpm -ev --nodeps hardinfo

12、查找特定文件的RPM包

假设你有一个文件列表,并且想找出哪些包属于这些文件。例如,以下带有-qf( 查询文件) 选项的命令将显示一个文件/usr/bin/htpasswd,它属于软件包httpd-tools-2.4.58-1.fc39.x86_64。

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13、查询已安装的RPM包信息

假设你安装了一个rpm软件包并想了解该软件包的信息。下面的-qi(查询信息)选项将打印已安装软件包的可用信息。

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.It has online benchmarking to check your machine performance against other machines.

14、安装前获取RPM包信息

你已经从互联网上下载了一个软件包,并想在安装之前了解该软件包的信息。例如,以下选项-qip(查询信息包)将打印包sqlbuddy的信息。

rpm -qip sqlbuddy

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.

15、查询已安装的RPM包的文档

要获取已安装软件包的可用文档列表,请使用以下带有-qdf(查询文档文件)选项的命令,将显示与vmstat软件包相关的手册页面。

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16、验证RPM包

验证一个软件包会将该软件包的已安装文件信息与RPM数据库进行比较。使用-Vp(验证软件包)选项来验证一个软件包:

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17、验证所有RPM包

输入以下命令来验证所有已安装的rpm软件包:

rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18、导入RPM GPG密钥

要验证RHEL/CentOS/Fedora软件包,必须导入GPG密钥。为此,请执行以下命令,它将导入CentOS 8  GPG密钥:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

19、列出所有导入的RPM GPG密钥

要输出系统中所有导入的GPG密钥,请使用以下命令:

rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20、重建损坏的RPM数据库

有时rpm数据库会损坏并停止系统上rpm和其它应用程序的所有功能。所以,这时候我们需要重建rpm数据库,并借助以下命令进行恢复。

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

总结

总之,上面所提供的RPM命令为在基于RHEL的Linux发行版上高效管理软件包提供了全面的指南,功能作用是非常的明显,希望上述典型命令使用示例能够对你们有所帮助。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《20个在Linux系统中使用RPM命令的典型示例》
文章链接:https://www.ecscoupon.com/4596.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!