rpmコマンド : RPMパッケージ管理
コマンド概要
-
rpmコマンドはRPMパッケージのインストール、アンインストール、アップデート、検索、検証、を実施するコマンドです。
Note- Red Hat系ディストリビューションは、RPMでシステムファイルを管理しています。
- RPMパッケージファイルは
yumdownloader
コマンドを利用することでYumレポジトリから入手することができます。
-
RPMパッケージには以下2種類のパッケージがあります。
-
.x86_64.rpm
のようにファイル名末尾にアーキテクチャ名と.rpm
拡張子がついたバイナリパッケージ。
インストールするファイルのパーミッションやインストール後に実行するスクリプトなどがメタデータとして含まれています。 -
.src.rpm
という拡張子のソースファイルのみが含まれるソースパッケージ。
バイナリパッケージを作成するためのspecファイルと呼ばれるファイルが含まれます。
-
コマンド書式
rpm オプション [パッケージ名]
オプション | 説明 |
---|---|
-i | 指定したRPMパッケージをインストールする。 |
-U | 指定したRPMパッケージでアップデートする。該当パッケージがインストールされていない場合はインストールする。 |
-F | 指定したRPMパッケージが、①既にインストールされていて、②インストール済バージョンより新しい、場合のみアップデートする。 |
-e | 指定したRPMパッケージをアンインストールする。 |
-q | 指定したRPMパッケージ情報を表示する。 |
-V | 指定した(インストール済の)RPMパッケージをrpmデータベースに保持されいてるメタデータを使って検証する。 |
オプション | 説明 |
---|---|
-h | プログレスバー(進捗状態)を表示する。 |
-v | デバッグ情報を表示する。 |
--nodeps | パッケージの依存関係をチェックしない。 |
--percent | 進捗状況をパーセンテージで表示する。 |
オプション | 説明 |
---|---|
-a | 全てのインストール済パッケージ情報を表示する。 |
-c | 指定したRPMパッケージ(=文字列)に含まれる設定ファイル情報を表示する。 |
-i 文字列 | 指定したRPMパッケージ(=文字列)の詳細情報を表示する。 |
-l 文字列 | 指定したRPMパッケ ージ(=文字列)に含まれるファイル一覧を表示する。 |
-p 文字列 | インストールされたRPMパッケージではなく、指定したRPMパッケージファイル(=文字列)の情報を表示する。 |
-R 文字列 | 指定したRPMパッケージ(=文字列)の依存パッケージを表示する。 |
-v | 詳細なデバッグ情報を表示する。 |
オプション | 説明 |
---|---|
-v | 詳細情報を表示する。 |
コマンド使用例
項目 | 値 | 補足 |
---|---|---|
OS | Amazon Linux 2 | |
シェル | bash 4.2.46 | |
コマンド | RPM version 4.11.3 | |
PS1 | [\u@\h \W]$ | プロンプト表示形式は [ユーザ名@ホスト名 カレントディレクトリ名]ユーザ権限 |
PS2 | > | 継続行のプロンプト表示形式 |
rpm -i : パッケージインストール
-
-i
オプションを使用するとRPMパッケージをインストールすることができます。Note下記例では--nodeps
オプションを追加することでパッケージの依存関係をチェックしないようにしています。コマンド例// rootユーザ操作 // カレントディレクトリ状態(パッケージファイルが存在する) [root@hostname ~]# ls python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(インストール前) [root@hostname ~]# rpm -q python3 package python3 is not installed // RPMパッケージインストール [root@hostname ~]# rpm -i --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(インストール後) [root@hostname ~]# rpm -q python3 python3-3.7.16-1.amzn2.0.4.x86_64
-
-i
オプションに加えて以下のオプションを使用することができます。-h
オプションを使用するとインストール状況をプログレスバー(進捗状態)で表示します。-v
オプションを使用するとデバッグ情報を表示します。--percent
オプションを使用するとインストール状況をパーセンテージで表示します。
コマンド例// rootユーザ操作 // RPMパッケージインストール(プログレスバー表示) [root@hostname ~]# rpm -hi --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm################################# [100%] Updating / installing... ################################# [100%] // RPMパッケージインストール(デバッグ情報表示) [root@hostname ~]# rpm -iv --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpmPreparing packages... python3-3.7.16-1.amzn2.0.4.x86_64 // RPMパッケージインストール(パーセンテージ表示) [root@hostname ~]# rpm -i --percent --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm%% 0.000000 %% 0.000000 %% 0.348861 %% 0.887544 %% 1.244100 %% 1.605787 %% 3.065360 %% 3.437307 %% 29.206854 %% 29.591625 %% 62.792427 %% 63.200291 %% 80.925507 %% 81.264107 %% 99.681923 %% 100.000000
rpm -U : パッケージアップデート
-
-U
オプションを使用するとRPMパッケージをアップデートすることができます。該当パッケージがインストールされていない場合はインストールされます。Note下記例では--nodeps
オプションを追加することでパッケージの依存関係をチェックしないようにしています。コマンド例1// rootユーザ操作 // カレントディレクトリ状態(パッケージファイルが存在する) [root@hostname ~]# ls python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(アップデート前) [root@hostname ~]# rpm -q python3 python3-3.7.10-1.amzn2.0.1.x86_64 // RPMパッケージアップデート [root@hostname ~]# rpm -U --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(アップデート後) [root@hostname ~]# rpm -q python3 python3-3.7.16-1.amzn2.0.4.x86_64
コマンド例2// rootユーザ操作 // カレントディレクトリ状態(パッケージファイルが存在する) [root@hostname ~]# ls python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(アップデート前) [root@hostname ~]# rpm -q python3 package python3 is not installed // RPMパッケージアップデート(未インストールの場合はインストール) [root@hostname ~]# rpm -U --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(アップデート後) [root@hostname ~]# rpm -q python3 python3-3.7.16-1.amzn2.0.4.x86_64
-
-U
オプションに加えて以下のオプションを使用することができます。-h
オプションを使用するとアップデート状況をプログレスバー(進捗状態)で表示します。-v
オプションを使用するとデバッグ情報を表示します。--percent
オプションを使用するとアップデート状況をパーセンテージで表示します。
コマンド例// rootユーザ操作 // RPMパッケージアップデート(プログレスバー表示) [root@hostname ~]# rpm -hU --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm################################# [100%] Updating / installing... ################################# [ 50%] Cleaning up / removing... ################################# [100%] // RPMパッケージアップデート(デバッグ情報表示) [root@hostname ~]# rpm -Uv --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpmPreparing packages... python3-3.7.16-1.amzn2.0.4.x86_64 python3-3.7.10-1.amzn2.0.1.x86_64 // RPMパッケージアップデート(パーセンテージ表示) [root@hostname ~]# rpm -U --percent --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm%% 0.000000 %% 50.000000 %% 0.000000 %% 0.348861 %% 0.887544 %% 1.244100 %% 1.605787 %% 3.065360 %% 3.437307 %% 29.206854 %% 29.591625 %% 62.792427 %% 63.200291 %% 80.925507 %% 81.264107 %% 99.681923 %% 100.000000 %% 0.000000 %% 7.692308 %% 15.384616 %% 23.076923 %% 30.769232 %% 38.461540 %% 46.153847 %% 53.846157 %% 61.538464 %% 69.230774 %% 76.923080 %% 84.615387 %% 92.307693 %% 100.000000
rpm -F : パッケージアップデート
-
-F
オプションを使用するとRPMパッケージをアップデートすることができます。該当パッケージがインストールされていない場合はアップデートされません。Note下記例では--nodeps
オプションを追加することでパッケージの依存関係をチェックしないようにしています。コマンド例// rootユーザ操作 [root@hostname ~]# ls python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(アップデート前) [root@hostname ~]# rpm -q python3 python3-3.7.10-1.amzn2.0.1.x86_64 // RPMパッケージアップデート [root@hostname ~]# rpm -F --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm // RPMパッケージインストール状態(アップデート後) [root@hostname ~]# rpm -q python3 python3-3.7.16-1.amzn2.0.4.x86_64
-
-F
オプションに加えて以下のオプションを使用することができます。-h
オプションを使用するとアップデート状況をプログレスバー(進捗状態)で表示します。-v
オプションを使用するとデバッグ情報を表示します。--percent
オプションを使用するとアップデート状況をパーセンテージで表示します。
コマンド例// rootユーザ操作 // RPMパッケージアップデート(プログレスバー表示) [root@hostname ~]# rpm -hF --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm################################# [100%] Updating / installing... ################################# [ 50%] Cleaning up / removing... ################################# [100%] // RPMパッケージアップデート(デバッグ情報表示) [root@hostname ~]# rpm -Fv --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpmPreparing packages... python3-3.7.16-1.amzn2.0.4.x86_64 python3-3.7.10-1.amzn2.0.1.x86_64 // RPMパッケージアップデート(パーセンテージ表示) [root@hostname ~]# rpm -F --percent --nodeps python3-3.7.16-1.amzn2.0.4.x86_64.rpm%% 0.000000 %% 50.000000 %% 0.000000 %% 0.348861 %% 0.887544 %% 1.244100 %% 1.605787 %% 3.065360 %% 3.437307 %% 29.206854 %% 29.591625 %% 62.792427 %% 63.200291 %% 80.925507 %% 81.264107 %% 99.681923 %% 100.000000 %% 0.000000 %% 7.692308 %% 15.384616 %% 23.076923 %% 30.769232 %% 38.461540 %% 46.153847 %% 53.846157 %% 61.538464 %% 69.230774 %% 76.923080 %% 84.615387 %% 92.307693 %% 100.000000
rpm -e : パッケージアンインストール
-
-e
オプションを使用するとRPMパッケージをアンインストールすることができます。コマンド例// rootユーザ操作 // RPMパッケージインストール状態(アンインストール前) [root@hostname ~]# rpm -q python3 python3-3.7.16-1.amzn2.0.4.x86_64 // RPMパッケージアンインストール [root@hostname ~]# rpm -e python3 // RPMパッケージインストール状態(アンインストール後) [root@hostname ~]# rpm -q python3 package python3 is not installed
-
-e
オプションに加えて以下のオプションを使用することができます。-h
オプションを使用するとアンインストール状況をプログレスバー(進捗状態)で表示します。-v
オプションを使用するとデバッグ情報を表示します。--percent
オプションを使用するとアンインストール状況をパーセンテージで表示します。
コマンド例// rootユーザ操作 // RPMパッケージアンインストール(プログレスバー表示) [root@hostname ~]# rpm -eh python3################################# [100%] Cleaning up / removing... ################################# [100%] // RPMパッケージアンインストール(デバッグ情報表示) [root@hostname ~]# rpm -ev python3Preparing packages... python3-3.7.16-1.amzn2.0.4.x86_64 // RPMパッケージアンインストール(パーセンテージ表示) [root@hostname ~]# rpm -e --percent python3%% 0.000000 %% 0.000000 %% 7.692308 %% 15.384616 %% 23.076923 %% 30.769232 %% 38.461540 %% 46.153847 %% 53.846157 %% 61.538464 %% 69.230774 %% 76.923080 %% 84.615387 %% 92.307693 %% 100.000000
rpm -q : パッケージ情報表示
-q
オプションを使用すると指定したRPMパッケージの情報を表示することができます。
// rootユーザ操作
// RPMパッケージ検索
[root@hostname ~]# rpm -q python3python3-3.7.16-1.amzn2.0.4.x86_64
-
-q
オプションに加えて以下のオプションを使用することができます。-a
オプションを使用するとインストールされている全てのパッケージを表示します。-c
オプションを使用すると指定したRPMパッケージの設定ファイル情報を表示します。-i
オプションを使用すると指定したRPMパッケージの詳細情報を表示します。-l
オプションを使用すると指定したRPMパッケージに含まれるファイル一覧を表示します。-p
オプションを使用すると指定したRPMパッケージファイル情報を表示します。-R
オプションを使用すると指定したRPMパッケージの依存パッケージを表示します。-v
オプションを使用すると詳細なデバッグ情報を表示します。
コマンド例// rootユーザ操作 // RPMパッケージ情報表示(全インストール済パッケージ表示) [root@hostname ~]# rpm -aqlibuuid-devel-2.30.2-2.amzn2.0.11.x86_64 python2-six-1.11.0-8.amzn2.0.1.noarch system-release-2-14.amzn2.x86_64 readline-devel-6.2-10.amzn2.0.2.x86_64 cyrus-sasl-lib-2.1.26-24.amzn2.x86_64 glibc-all-langpacks-2.26-63.amzn2.0.1.x86_64 (以降省略) // RPMパッケージ設定ファイル情報表示 [root@hostname ~]# rpm -qc bash/etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc // RPMパッケージ情報表示(詳細表示) [root@hostname ~]# rpm -qi python3Name : python3 Version : 3.7.16 Release : 1.amzn2.0.4 Architecture: x86_64 Install Date: Tue 14 Nov 2023 12:39:33 PM UTC (以降省略) // RPMパッケージ情報表示(ファイル一覧表示) [root@hostname ~]# rpm -ql python3/usr/bin/pydoc3 /usr/bin/pydoc3.7 /usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/bin/pyvenv /usr/bin/pyvenv-3.7 /usr/share/doc/python3-3.7.16 /usr/share/doc/python3-3.7.16/README.rst /usr/share/licenses/python3-3.7.16 /usr/share/licenses/python3-3.7.16/LICENSE /usr/share/man/man1/python3.1.gz /usr/share/man/man1/python3.7.1.gz // RPMパッケージファイル情報表示 [root@hostname ~]# rpm -qp python3-3.7.16-1.amzn2.0.4.x86_64.rpmpython3-3.7.16-1.amzn2.0.4.x86_64 // RPMパッケージ情報表示(依存パッケージ表示) [root@hostname ~]# rpm -qR python3libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libcrypt.so.1()(64bit) libdl.so.2()(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) libpython3.7m.so.1.0()(64bit) libutil.so.1()(64bit) python3-libs(x86-64) = 3.7.16-1.amzn2.0.4 python3-pip python3-setuptools rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rtld(GNU_HASH) rpmlib(PayloadIsXz) <= 5.2-1 // RPMパッケージ情報表示(詳細表示) [root@hostname ~]# rpm -qlv python3lrwxrwxrwx 1 root root 8 Aug 30 20:40 /usr/bin/pydoc3 -> pydoc3.7 -rwxr-xr-x 1 root root 78 Aug 30 20:40 /usr/bin/pydoc3.7 lrwxrwxrwx 1 root root 9 Aug 30 20:40 /usr/bin/python3 -> python3.7 -rwxr-xr-x 2 root root 7048 Aug 30 20:41 /usr/bin/python3.7 -rwxr-xr-x 2 root root 7048 Aug 30 20:41 /usr/bin/python3.7m lrwxrwxrwx 1 root root 10 Aug 30 20:40 /usr/bin/pyvenv -> pyvenv-3.7 -rwxr-xr-x 1 root root 435 Aug 30 20:40 /usr/bin/pyvenv-3.7 drwxr-xr-x 2 root root 0 Aug 30 20:45 /usr/share/doc/python3-3.7.16 -rw-r--r-- 1 root root 9894 Dec 6 2022 /usr/share/doc/python3-3.7.16/README.rst drwxr-xr-x 2 root root 0 Aug 30 20:45 /usr/share/licenses/python3-3.7.16 -rw-r--r-- 1 root root 12787 Dec 6 2022 /usr/share/licenses/python3-3.7.16/LICENSE lrwxrwxrwx 1 root root 14 Aug 30 20:41 /usr/share/man/man1/python3.1.gz -> python3.7.1.gz -rw-r--r-- 1 root root 6760 Dec 6 2022 /usr/share/man/man1/python3.7.1.gz
rpm -V : パッケージ検証
-
-V
オプションを使用すると指定したインストール済RPMパッケージを検証することができます。コマンド例// rootユーザ操作 // RPMパッケージインストール状態 [root@hostname ~]# rpm -q python3 python3-3.7.16-1.amzn2.0.4.x86_64 // RPMパッケージ検証 [root@hostname ~]# rpm -V python3Unsatisfied dependencies for python3-3.7.16-1.amzn2.0.4.x86_64: libpython3.7m.so.1.0()(64bit) is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 python3-libs(x86-64) = 3.7.16-1.amzn2.0.4 is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 python3-pip is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 python3-setuptools is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64
-
-V
オプションに加えて以下のオプションを使用することができます。-v
オプションを使用すると詳細表示します。
コマンド例// rootユーザ操作 // RPMパッケージ検証(詳細表示) [root@hostname ~]# rpm -vV python3Unsatisfied dependencies for python3-3.7.16-1.amzn2.0.4.x86_64: libpython3.7m.so.1.0()(64bit) is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 python3-libs(x86-64) = 3.7.16-1.amzn2.0.4 is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 python3-pip is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 python3-setuptools is needed by (installed) python3-3.7.16-1.amzn2.0.4.x86_64 ......... /usr/bin/pydoc3 ......... /usr/bin/pydoc3.7 ......... /usr/bin/python3 ......... /usr/bin/python3.7 ......... /usr/bin/python3.7m ......... /usr/bin/pyvenv ......... /usr/bin/pyvenv-3.7 ......... /usr/share/doc/python3-3.7.16 ......... d /usr/share/doc/python3-3.7.16/README.rst ......... /usr/share/licenses/python3-3.7.16 ......... l /usr/share/licenses/python3-3.7.16/LICENSE ......... d /usr/share/man/man1/python3.1.gz ......... d /usr/share/man/man1/python3.7.1.gz
コメント