【Linux】RPMパッケージのコマンド:rpm

Linux

どーも!marusukeです!

RPMパッケージを追加、削除、更新するためのコマンドrpmについて説明します!

rpmコマンドとは

Red Hat社が開発したRPMパッケージ管理システムのコマンドです

Red Hat Enterprise LinuxやFedoraやCentOS、Rocky LinuxなどのRed Hat系のディストリビューションのパッケージをインストールしたり、アンインストールしたり、アップデートしたりするコマンドです

rpmコマンドの書式

# rpm [オプション] [パッケージファイル]

rpm コマンドは、RPM パッケージファイルのインストール、アップグレード、削除、検証、クエリなどを行うことができます

※コマンド実行時はroot権限が必要になります

rpmコマンドの使用例

# rpm -qa | grep nginx
nginx-1.18.0-1.el8.ngx.x86_64

この例では、システムにインストールされている nginx パッケージを検索しています

rpmコマンドのオプション

オプションはインストールモード(アップグレードモード)、アンインストールモード、照会モードの3つがあります。また、それぞれのモードで併用できるオプションがあります

インストールモード・アップグレードモードのオプション

オプション説明
-i, --install指定したパッケージをインストールする
-U, --upgrade指定したパッケージをアップグレードする。なければインストールする
-F --freshin指定したパッケージをインストールする

以下は併用できるコマンドです

オプション説明
-v詳細情報を表示する
-h, --hashハッシュマーク#で進捗を表示する

インストールする際のコマンド使用例(詳細情報部分は表示イメージです)

rpm -ivh sample-package-1.0-1.el8.x86_64.rpm
準備中...                          ################################# [100%]
インストール中: sample-package      ################################# [100%]

アップグレードする際のコマンド使用例(詳細情報部分は表示イメージです)

rpm -Uvh sample-package-2.0-1.el8.x86_64.rpm
準備中...                          ################################# [100%]
アップグレード/インストール中...      ################################# [100%]

アップグレードする際のコマンド使用例(詳細情報部分は表示イメージです)

rpm -Fvh sample-package-2.1-1.el8.x86_64.rpm
準備中...                          ################################# [100%]
アップグレード中: updated-package   ################################# [100%]

アンインストールモードのオプション

オプション説明
-e, --eraseパッケージを削除する
(アンインストールモード)

以下は併用できるコマンドです

オプション説明
--nodeps依存関係を無視してパッケージを削除する

依存関係を無視してパッケージを削除する場合

rpm -e --nodeps sample-package
削除中: sample-package ################################# [100%]

※依存関係を無視して削除する場合は、他のパッケージに悪影響が出る可能性があります

照会モードのオプション

オプション説明
-q, --queryパッケージを照会する
(照会モード)
--checksig電子署名を確認する

以下は併用できるオプションです

オプション説明
-a, --allすべてのインストールされたパッケージを表示する
-f指定されたファイルを所有するパッケージを表示する
-pパッケージ名でなく、RPMパッケージファイルを指定する
-i, --info指定したパッケージの詳細情報を表示する
-R指定したパッケージの依存関係のコンポーネントを表示する
-l, --list指定したパッケージに含まれるファイルを表示する
-c, --configfiles指定したパッケージの設定ファイルのみを表示する
-d, --docfiles指定したパッケージのドキュメントファイルのみを表示する
--changelog指定したパッケージの変更履歴を表示する

以下はOSにインストールされている全てのパッケージを一覧表示する場合です

rpm -qa
audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_64
bash-4.4.19-12.el8.x86_64
coreutils-8.30-8.el8.x86_64
...

以下はファイルパスのパッケージに属しているかを調べる場合です

rpm -qf /bin/bash
bash-4.4.19-12.el8.x86_64

以下は指定したパッケージの詳細を示す場合です

rpm -qpi package-file-1.0-1.el8.x86_64.rpm
Name        : package-file
Version     : 1.0
Release     : 1.el8
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/System
Size        : 274162
License     : GPL
Signature   : RSA/SHA256, Sun 26 Jan 2020 07:09:42 AM UTC, Key ID e73b3dbf4f2f9b08
Source RPM  : package-file-1.0-1.el8.src.rpm
Build Date  : Fri 24 Jan 2020 01:20:43 PM UTC
Build Host  : builder-host
Relocations : (not relocatable)
Packager    : Example Packager
Vendor      : Example Vendor
URL         : http://example.com/
Summary     : An example package for demonstration
Description :
This is an example RPM package used to demonstrate the rpm -qp command.

以下は指定したパッケージに含まれるファイルをリストで表示する場合です

rpm -qlp example-package-1.0-1.el8.x86_64.rpm
/etc/example
/usr/bin/example
/usr/share/doc/example
/usr/share/doc/example/README

以下は、指定したパッケージの依存関係を調べる場合です

rpm -qR nginx
libc.so.6(GLIBC_2.14)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
systemd
...

以下は、指定したパッケージの設定ファイルのパスを表示する場合です

rpm -qc httpd
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf

以下は、指定したパッケージのドキュメントファイルの一覧を表示する場合です

rpm -qd httpd
/usr/share/doc/httpd-2.4.6/README
/usr/share/doc/httpd-2.4.6/CHANGES
/usr/share/doc/httpd-2.4.6/LICENSE
/usr/share/doc/httpd-2.4.6/NEWS

以下は、指定したパッケージの変更履歴を表示する場合です

rpm -q --changelog httpd
* Tue Mar 24 2020 Joe Developer <joe@example.com> - 2.4.43-1
- Updated to 2.4.43 upstream
- Added patches for enhanced security features

* Fri Jan 10 2020 Amy Tester <amy@example.com> - 2.4.41-1
- Fixed bug related to mod_proxy
- Improved performance of mod_rewrite

...

以下は、パッケージの署名を確認する場合です

rpm --checksig package-1.0-1.el8.x86_64.rpm
package-1.0-1.el8.x86_64.rpm: sha1 md5 OK

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました