LinuxでのRPMコマンドの20の実用例

RPMRed Hat Package Manager)は、CentOS、Fedora、Rocky、およびAlma LinuxなどのRed Hatベースのシステム向けのデフォルトのオープンソースで広く使用されているパッケージ管理ユーティリティです。

rpmパッケージ管理ツールを使用すると、システム管理者やユーザーはUnix/Linuxオペレーティングシステム上でソフトウェアパッケージのインストール、更新、アンインストール、クエリ、検証、および管理を行うことができます。かつて.rpmファイルとして知られていましたが、これにはパッケージに必要なコンパイルされたソフトウェアプログラムとライブラリが含まれています。

この記事では、あなたの役に立つかもしれないRPMコマンドの20の有用な例を提供します。これらのRPMコマンドの助けを借りて、Linuxシステム上のパッケージのインストール、更新、および削除を管理できます。

RPMの事実

ここにRPMRed Hat Package Manager)に関するいくつかの事実があります:

  • RPMは無料で利用可能であり、一般公開ライセンス(GPL)の下でリリースされています。
  • RPMは、すべてのインストールされたパッケージのデータベースを維持し、この情報を/var/lib/rpmディレクトリに保存します。
  • RPMは、Linuxシステム上でパッケージをインストールするための主要な方法として機能します。ソースコードを使用してパッケージをインストールした場合、RPMはそれらを管理しません。
  • RPMは.rpmファイルで動作し、その中には識別子、ソース、依存関係、バージョンの詳細など、重要なパッケージ情報が含まれています。

RPMコマンドの基本モード

RPMコマンドの主要なモードは次のとおりです:

  • インストールrpm -iコマンドはシステムに新しいパッケージをインストールします。
  • アップグレードrpm -Uコマンドは既存のパッケージを新しいバージョンにアップグレードします。
  • 削除rpm -eコマンドはシステムからパッケージをアンインストールまたは削除します。
  • クエリrpm -qコマンドはインストールされたパッケージに関する情報をRPMデータベースにクエリします。
  • 検証rpm -Vコマンドはインストールされたパッケージファイルの整合性を検証します。
  • フレッシュアップrpm -Fコマンドは既にインストールされている場合にのみパッケージをアップグレードまたはインストールします。
  • データベースの再構築rpm --rebuilddbコマンドはRPMデータベースを再構築し、データベースの破損問題を解決します。
  • GPGキーのインポートrpm --importコマンドはパッケージ署名の検証に使用されるGPGキーをインポートします。
  • すべてのクエリrpm -qaコマンドはシステムにインストールされたすべてのパッケージをリストします。
  • ファイルのクエリrpm -qlコマンドは特定のパッケージによってインストールされたすべてのファイルをリストします。
  • ドキュメントのクエリrpm -qdコマンドはパッケージによって提供されるドキュメントファイルをリストします。
  • 依存関係のクエリrpm -qRコマンドはパッケージのランタイム依存関係をリストします。
  • クエリ提供rpm -q --provides コマンドはパッケージが提供する機能をリストします。
  • クエリ要件rpm -q --requires コマンドはパッケージに必要な依存関係をリストします。

RPMパッケージの見つけ方

Linuxディストリビューションによって異なりますが、RPMパッケージを見つけてダウンロードできるいくつかの場所があります。ここに、すべてのRPMパッケージを見つけることができる一般的な場所を示します。

必ずしもrootユーザーでLinuxでパッケージをインストールする必要があります。root特権を持つと、rpmコマンドを適切なオプションで管理できます。

1. RPMパッケージの署名を確認する方法

Linuxシステムにインストールする前に、常にPGP署名を確認し、それらの完全性と由来がOKであることを確認してください。

次のコマンドを--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 -q hardinfo

hardinfo-2.0.11-1.x86_64

6. RPMファイルがインストールされている場所を見つける方法

インストールされたrpmパッケージのすべてのファイルを表示するには、rpmコマンドで-qlクエリリスト)を使用します。

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”(アップグレード)オプションを使用します。このオプションを使用する主な利点の1つは、パッケージの最新バージョンをアップグレードするだけでなく、古いパッケージのバックアップも維持することです。そのため、もし新しくアップグレードされたパッケージが実行されない場合は、以前にインストールされたパッケージを再び使用できます。

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 (erase)オプションを使用してパッケージを削除します。

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ディストリビューションでソフトウェアパッケージを効率的に管理するための包括的なガイドを提供します。

Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/