「Linuxコマンド - RPMコマンド」の版間の差分
(同じ利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
== 概要 == | |||
RPM (Red Hat Package Manager) は、RHELやその派生ディストリビューションで使用されるパッケージ管理システムである。<br> | |||
rpmコマンドは、パッケージのインストール、更新、削除、検索等を行うために使用される。<br> | |||
<br><br> | |||
== rpmファイルの詳細情報の確認(インストール前) == | == rpmファイルの詳細情報の確認(インストール前) == | ||
-pオプションを付与すると、インストール前にrpmファイルから確認できる。<br> | -pオプションを付与すると、インストール前にrpmファイルから確認できる。<br> | ||
42行目: | 47行目: | ||
== 特定のファイルがどのrpmに含まれているかを確認 == | == 特定のファイルがどのrpmに含まれているかを確認 == | ||
- | <code>-f</code>オプション、または、<code>--file</code>オプションで表示することができる。<br> | ||
<br> | |||
特定のコマンドおよびライブラリがインストールされているパッケージ名を調べるために使用する。<br> | |||
rpm -qf $(which <コマンド名>) | |||
# または | |||
rpm -qf <ライブラリのパス> | |||
<br> | |||
各オプションを以下に示す。<br> | |||
* -qオプション | |||
*: quiet (静粛) モードを指定する。 | |||
*: つまり、通常の出力ではなく、エラー以外の情報を表示しないようにする。 | |||
*: <br> | |||
* -fオプション | |||
*: 指定されたファイルがどのパッケージに属するかを調べるために使用する。 | |||
*: -qオプションと組み合わせて使用する場合、指定されたファイルが含まれるパッケージ名を表示する。 | |||
<br> | |||
whichコマンドで実行可能ファイルのパスを表示することにより、<br> | |||
特定のコマンドの実行可能ファイルのパスを調べて、それがどのパッケージに属するかを調べるために使用するものである。<br> | |||
<br> | |||
# 使用例: | |||
rpm -qf $(which dd) | |||
# 出力例: | |||
# これは、ddコマンドがcoreutilsパッケージの一部であることを示している | |||
coreutils-8.32-3.el8.x86_64 | |||
<br> | |||
# 使用例: | |||
rpm -qf /usr/lib64/libcrypto.so.10 | rpm -qf /usr/lib64/libcrypto.so.10 | ||
# 出力例: | |||
# /usr/lib64/libcrypto.so.10ファイルは、openssl-libs-1.0.2k-8.el7.x86_64というrpmに含まれている | |||
openssl-libs-1.0.2k-8.el7.x86_64 | openssl-libs-1.0.2k-8.el7.x86_64 | ||
<br><br> | <br><br> | ||
98行目: | 130行目: | ||
・ | ・ | ||
・ | ・ | ||
<br><br> | |||
== 特定のrpmファイルのアンインストールを行う == | |||
<code>-e</code>または、<code>--erase</code>オプションは、指定したパッケージを削除する際に使用する。<br> | |||
rpm -e <パッケージ名> | |||
<br><br> | <br><br> | ||
121行目: | 158行目: | ||
/sbin/install-info --delete /usr/share/info/wget.info.gz /usr/share/info/dir || : | /sbin/install-info --delete /usr/share/info/wget.info.gz /usr/share/info/dir || : | ||
fi | fi | ||
<br><br> | |||
== 特定のパッケージのチェック == | |||
<code>-V</code>または<code>--verify</code>オプションは、指定したパッケージに含まれるファイルの変更や損傷を検査する際に使用する。<br> | |||
rpm -V <パッケージ名> | |||
<br> | |||
パッケージの検査では、 パッケージ内のインストールされたファイルの情報と、rpmデータベースに格納されているパッケージのメタデータから得られたファイルの情報を比較する。<br> | |||
<br> | |||
例えば、ファイルのサイズ、 所有者、グループ等を比較する。<br> | |||
問題がある場合には、問題に応じて文字が出力されるため、その出力結果から、ファイルの整合性に関する問題を識別し、ファイルを元の状態に戻すか、変更を許可するか等を判断する。<br> | |||
<br><br> | <br><br> | ||
144行目: | 191行目: | ||
rpmdev-extractコマンドは、rpmdevtoolsというパッケージに含まれている。<br> | rpmdev-extractコマンドは、rpmdevtoolsというパッケージに含まれている。<br> | ||
以下のコマンドを実行して、rpmdevtoolsをインストールする。<br> | 以下のコマンドを実行して、rpmdevtoolsをインストールする。<br> | ||
# | # RHEL | ||
sudo | sudo dnf install rpmdevtools | ||
<br> | <br> | ||
rpmdev-extractコマンドは、引数で指定されたRPMファイルを展開する。<br> | rpmdev-extractコマンドは、引数で指定されたRPMファイルを展開する。<br> | ||
rpmdev-extract <RPMファイル> | rpmdev-extract <RPMファイル> | ||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||
[[カテゴリ:PinePhone]] |
2024年11月4日 (月) 01:05時点における最新版
概要
RPM (Red Hat Package Manager) は、RHELやその派生ディストリビューションで使用されるパッケージ管理システムである。
rpmコマンドは、パッケージのインストール、更新、削除、検索等を行うために使用される。
rpmファイルの詳細情報の確認(インストール前)
-pオプションを付与すると、インストール前にrpmファイルから確認できる。
パッケージファイル情報の詳細を表示する。
rpm -qip <rpmファイル名>
該当パッケージでインストールされるファイルの一覧を表示する。
rpm -qlp <rpmファイル名>
パッケージが依存しているファイルを表示する。
rpm -qRp <rpmファイル名>
rpmファイルの詳細情報の確認
-iまたは--infoオプションで確認できる。
rpm -qi <rpmファイル名>
インストールされているrpmのリストの表示
-aまたは--allオプションで確認できる。
rpm -qa openal-soft-1.17.2-lp151.5.3.1.x86_64 libpng16-16-32bit-1.6.34-lp151.3.3.1.x86_64 openssl-1.1.0i-lp151.1.1.noarch wicked-service-0.6.60-lp151.2.12.1 ・ ・ ・
rpmファイルでインストールされるファイルの表示
-lまたは--listオプションで表示できる。
rpm -ql <rpmファイル名> /etc/pki/CA /etc/pki/CA/certs /etc/pki/CA/crl ・ ・ ・
特定のファイルがどのrpmに含まれているかを確認
-f
オプション、または、--file
オプションで表示することができる。
特定のコマンドおよびライブラリがインストールされているパッケージ名を調べるために使用する。
rpm -qf $(which <コマンド名>) # または rpm -qf <ライブラリのパス>
各オプションを以下に示す。
- -qオプション
- quiet (静粛) モードを指定する。
- つまり、通常の出力ではなく、エラー以外の情報を表示しないようにする。
- -fオプション
- 指定されたファイルがどのパッケージに属するかを調べるために使用する。
- -qオプションと組み合わせて使用する場合、指定されたファイルが含まれるパッケージ名を表示する。
whichコマンドで実行可能ファイルのパスを表示することにより、
特定のコマンドの実行可能ファイルのパスを調べて、それがどのパッケージに属するかを調べるために使用するものである。
# 使用例: rpm -qf $(which dd) # 出力例: # これは、ddコマンドがcoreutilsパッケージの一部であることを示している coreutils-8.32-3.el8.x86_64
# 使用例: rpm -qf /usr/lib64/libcrypto.so.10 # 出力例: # /usr/lib64/libcrypto.so.10ファイルは、openssl-libs-1.0.2k-8.el7.x86_64というrpmに含まれている openssl-libs-1.0.2k-8.el7.x86_64
特定のrpmファイルをインストールするために必要なパッケージ名称の表示
以下の例では、nssをインストールするには、bashやglibcが必要であることがわかる。
rpm -q --requires nss | cut -d ' ' -f 1 | xargs rpm -q --whatprovides | sort | uniq bash-4.2.46-28.el7.x86_64 chkconfig-1.7.4-1.el7.x86_64 glibc-2.17-196.el7_4.2.x86_64 ・ ・ ・
特定のrpmファイルが提供するファイルに依存するパッケージの表示
以下の例では、nssで提供するファイルは、NetworkManagerが使用していることがわかる。
rpm -q --provides nss | cut -d ' ' -f 1 | xargs rpm -q --whatrequires | sort | uniq NetworkManager-1.8.0-9.el7.x86_64 NetworkManager-libnm-1.8.0-9.el7.x86_64 NetworkManager-tui-1.8.0-9.el7.x86_64 ・ ・ ・
rpmファイルのインストールおよびアンインストール時に実行されるスクリプトの表示
--scriptsオプションで表示できる。
rpm -q --scripts nss-3.16.1-4.el6_5.x86_64 postinstall scriptlet (using /bin/sh): # If we upgrade, and the shared filename is a regular file, then we must # remove it, before we can install the alternatives symbolic link. if [ $1 -gt 1 ] ; then ・ ・ ・
特定のrpmファイルのインストールテストを行う
実際には実行せずに、 -iや-eオプションを付与した際のインストールテストを行う。
--testオプションで実行できる。
rpm -i --test postgresql-8.4.20-2.el6_6.i686.rpm エラー: 依存性の欠如: libc.so.6 は postgresql-8.4.20-2.el6_6.i686 に必要とされています libc.so.6(GLIBC_2.0) は postgresql-8.4.20-2.el6_6.i686 に必要とされています libc.so.6(GLIBC_2.1) は postgresql-8.4.20-2.el6_6.i686 に必要とされています ・ ・ ・
特定のrpmファイルのアンインストールを行う
-e
または、--erase
オプションは、指定したパッケージを削除する際に使用する。
rpm -e <パッケージ名>
パッケージの更新履歴を見る
--changelogオプションで実行できる。
rpm -q --changelog libblkid-2.17.2-12.14.el6_5.x86_64 * 水 4月 09 2014 Karel Zak <kzak@redhat.com> 2.17.2-12.14.el6_5 - fix #1085818 - hwclock --systohc can hang on busy or virtual machine ・ ・ ・
パッケージインストール時のスクリプトの確認
--scriptsオプションで確認できる。
rpm -q --scripts wget-1.19.5-7.el8_0.1.x86_64.rpm postinstall scriptlet (using /bin/sh): /sbin/install-info /usr/share/info/wget.info.gz /usr/share/info/dir || : preuninstall scriptlet (using /bin/sh): if [ "$1" = 0 ]; then /sbin/install-info --delete /usr/share/info/wget.info.gz /usr/share/info/dir || : fi
特定のパッケージのチェック
-V
または--verify
オプションは、指定したパッケージに含まれるファイルの変更や損傷を検査する際に使用する。
rpm -V <パッケージ名>
パッケージの検査では、 パッケージ内のインストールされたファイルの情報と、rpmデータベースに格納されているパッケージのメタデータから得られたファイルの情報を比較する。
例えば、ファイルのサイズ、 所有者、グループ等を比較する。
問題がある場合には、問題に応じて文字が出力されるため、その出力結果から、ファイルの整合性に関する問題を識別し、ファイルを元の状態に戻すか、変更を許可するか等を判断する。
RPMファイルの展開
rpmコマンドの問い合わせ機能は、インストールしたファイルが対象となるため、
インストール前にRPMファイルにどのようなファイルが含まれているかを調べたり、一部のファイルを取り出したりすることはできない。
インストール前に上記のようなことを行う場合、RPMパッケージをcpio形式のアーカイブファイルに変換して、ファイルの一覧を表示・展開すればよい。
RPMファイルをcpioファイルに変換するには、rpm2cpioコマンドを使用する。
また、cpio形式のアーカイブファイルから、ファイルを展開およびファイルの一覧を表示するにはcpioコマンドを使用する。
# RPMファイルの一覧の表示 rpm2cpio <ファイル名>.rpm | cpio --list # RPMファイルの展開 rpm2cpio <ファイル名>.rpm | cpio -id
rpmdev-extractコマンドの使用
上記の方法では、ファイル形式の変換処理が発生するため、入力するコマンドが長くなる。
RPMファイルを展開するだけであれば、rpmdev-extractコマンドを使用した方が簡単である。
rpmdev-extractコマンドは、rpmdevtoolsというパッケージに含まれている。
以下のコマンドを実行して、rpmdevtoolsをインストールする。
# RHEL sudo dnf install rpmdevtools
rpmdev-extractコマンドは、引数で指定されたRPMファイルを展開する。
rpmdev-extract <RPMファイル>