RPMは、RPM Package Managerの再帰的な頭字語です。これは、Fedora、Red Hat Enterprise Linux、CentOS、OpenSUSE、およびそれらの派生物など、最も有名で最も使用されているLinuxディストリビューションのデフォルトの低レベルパッケージマネージャーです。ご想像のとおり、このソフトウェアは無料でオープンソースです。 -q
で呼び出された場合 オプションを使用して、パッケージにクエリを実行し、依存関係、推奨事項、ファイルなどの特定の情報を取得できます。このチュートリアルでは、このようなクエリを実行する方法を学習します。
このチュートリアルでは、学習します :
- 「クエリ」モードでrpmを実行する方法
- パッケージに関する一般的な情報を入手する方法
- パッケージ変更ログの読み方
- パッケージによって提供されるファイルを一覧表示する方法
- パッケージで使用されるスクリプトを一覧表示する方法
- パッケージの依存関係と推奨事項を一覧表示する方法
- rpmによって廃止されたパッケージを一覧表示する方法
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
rpmパッケージマネージャーを使用するディストリビューション | |
rpmパッケージマネージャー | |
なし | |
#–指定されたlinux-commandを、rootユーザーとして直接、または sudo を使用してroot権限で実行する必要があります。 command $ –指定されたlinux-commandsを通常の非特権ユーザーとして実行する必要があります |
クエリモードでrpmを呼び出す
rpmパッケージマネージャーは、パッケージのインストール、アップグレード、および削除に使用できるため、システムのステータスを変更するために使用できます( -i
で呼び出された場合)。 、 -U
およびe
オプション)、または -q
を使用して起動すると、管理者権限を必要とせずに「クエリ」モードで実行できます。 オプション。これは-query
の短いバージョンです。 。
パッケージがすでにシステムにインストールされている場合は、名前で言及するだけです。そうでない場合は、ダウンロードした .rpm
にクエリを実行します。 たとえば、ファイルは -p
を使用する必要があります (-パッケージコード> )オプションを指定し、ファイルのパスを引数として指定します。パッケージに関する情報を取得する方法の実際的な例をいくつか見てみましょう。
パッケージに関する一般的な情報の入手
rpmパッケージを扱うときに実行したい基本的なことの1つは、それに関する一般的な情報を表示することです。このタスクを実行するには、 -i
を使用するだけです。 (または-info
)クエリモードでrpmを呼び出すときのオプション。この例では、システムにすでにインストールされている「gimp」パッケージを使用します。この場合、次のように実行します:
$ rpm -qi gimp
コマンドを呼び出した直後に、ソフトウェアの説明、バージョン、アーキテクチャ、インストール日、サイズなどの情報を含む、次のような出力が表示されます。
Name : gimp Epoch : 2 Version : 2.10.24 Release : 1.fc34 Architecture: x86_64 Install Date: Mon 21 Jun 2021 11:26:33 AM CEST Group : Unspecified Size : 109267268 License : GPLv3+ and GPLv3 Signature : RSA/SHA256, Sat 03 Apr 2021 02:00:02 AM CEST, Key ID 1161ae6945719a39 Source RPM : gimp-2.10.24-1.fc34.src.rpm Build Date : Sat 03 Apr 2021 01:13:55 AM CEST Build Host : buildhw-x86-11.iad2.fedoraproject.org Packager : Fedora Project Vendor : Fedora Project URL : http://www.gimp.org/ Bug URL : https://bugz.fedoraproject.org/gimp Summary : GNU Image Manipulation Program Description : GIMP (GNU Image Manipulation Program) is a powerful image composition and editing program, which can be extremely useful for creating logos and other graphics for web pages. GIMP has many of the tools and filters you would expect to find in similar commercial offerings, and some interesting extras as well. GIMP provides a large image manipulation toolbox, including channel operations and layers, effects, sub-pixel imaging and anti-aliasing, and conversions, all with multi-level undo.
パッケージ変更ログの読み取り
ご存知のとおり、変更ログは、プロジェクトに加えられたすべての変更が報告され、時系列で並べられたログです。 rpmパッケージの変更ログを読み取る場合は、クエリモードでrpmパッケージマネージャーを呼び出し、-changelog
を使用する必要があります。 オプション。例を見てみましょう:
$ rpm -q --changelog gimp
Fedora(34)の最新バージョンでの上記のコマンドの(切り捨てられた)出力は次のとおりです。
[...] Thu Jan 09 2020 Josef Ridky <[email protected]> - 2:2.10.14-3 - Demodularizing of gimp (#1772469) * Mon Nov 18 2019 Kalev Lember <[email protected]> - 2:2.10.14-2 - Rebuild for libmypaint 1.4.0 * Mon Nov 04 2019 Kalev Lember <[email protected]> - 2:2.10.14-1 - Update to 2.10.14 * Tue Aug 20 2019 Josef Ridky <[email protected]> - 2:2.10.12-3 - Fix default configuration for font folders (#1706653) * Wed Jul 31 2019 Josef Ridky <[email protected]> - 2:2.10.12-2 - Fix issue with reading SVG files (#1715882) * Thu Jul 25 2019 Fedora Release Engineering <[email protected]> - 2:2.10.12-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Thu Jun 13 2019 Kalev Lember <[email protected]> - 2:2.10.12-1 - Update to 2.10.12 * Thu Apr 11 2019 Richard Shaw <[email protected]> - 2:2.10.10-2 - Rebuild for OpenEXR 2.3.0. * Mon Apr 08 2019 Josef Ridky <[email protected]> - 2:2.10.10-1 - New upstream release 2.10.10 (#1697119)
パッケージによって提供されるすべてのファイルの一覧表示
システムにパッケージをインストールすると、メンテナが意図したとおり、一連のファイルが適切な場所にコピーされます。システムにすでにインストールされているパッケージによって提供されるファイルを一覧表示する場合は、
rpmパッケージマネージャーをクエリモードで-l
を使用して呼び出すことができます。 オプション(-list
の略) ):
$ rpm -ql gimp
前に述べたように、前にパッケージをクエリする場合 インストールしますが、代わりに -p
を追加する必要があります オプションで、パッケージのパスを引数として指定します:
$ rpm -qlp /path/to/package.rpm
上記のコマンドは、次の結果を生成します。
/etc/gimp /etc/gimp/2.0 /etc/gimp/2.0/controllerrc /etc/gimp/2.0/gimprc /etc/gimp/2.0/gtkrc /etc/gimp/2.0/menurc /etc/gimp/2.0/sessionrc /etc/gimp/2.0/templaterc /etc/gimp/2.0/toolrc /etc/gimp/2.0/unitrc /usr/bin/gimp /usr/bin/gimp-2.10 /usr/bin/gimp-console /usr/bin/gimp-console-2.10 /usr/bin/gimp-test-clipboard-2.0 [...]
パッケージで使用されるスクリプトの一覧表示
いくつかの.rpm
パッケージは、インストールまたは削除プロセスの一部として実行される一連のスクリプトまたは「スクリプトレット」を使用します。それらを確認したい場合は、-scripts
を使用してクエリモードでrpmを呼び出して実行できます。
オプション。この例のために、 systemdに含まれているスクリプトをチェックアウトします。 パッケージ:
$ rpm -q --scripts systemd
以下に、Fedora 34で起動したときの、上記のコマンドの(切り捨てられた)出力を示します。ご覧のとおり、スクリプト自体の前に、スクリプトが使用されているコンテキストも報告されていることがわかります(例:「preinstall」または「postinstall」)。 ”):
preinstall scriptlet (using /bin/sh): getent group cdrom &>/dev/null || groupadd -r -g 11 cdrom &>/dev/null || : getent group utmp &>/dev/null || groupadd -r -g 22 utmp &>/dev/null || : getent group tape &>/dev/null || groupadd -r -g 33 tape &>/dev/null || : getent group dialout &>/dev/null || groupadd -r -g 18 dialout &>/dev/null || : getent group input &>/dev/null || groupadd -r input &>/dev/null || : getent group kvm &>/dev/null || groupadd -r -g 36 kvm &>/dev/null || : getent group render &>/dev/null || groupadd -r render &>/dev/null || : getent group systemd-journal &>/dev/null || groupadd -r -g 190 systemd-journal 2>&1 || : [...]
もう1つの同様のオプションは、-triggers
です。 トリガースクリプトを表示するために使用されます パッケージに含まれています。トリガースクリプトとは何ですか?これらは基本的に、別のパッケージのステータスが変更されたときに実行(トリガー)されるスクリプトです
:
$ rpm -q --triggers systemd
上記のコマンドを使用すると、 systemdに含まれるトリガースクリプトを視覚化できます。 パッケージ:
triggerun scriptlet (using /bin/sh) -- systemd < 246.1-1 # This is for upgrades from previous versions before systemd-resolved became the default. systemctl --no-reload preset systemd-resolved.service &>/dev/null || : if systemctl -q is-enabled systemd-resolved.service &>/dev/null; then systemctl -q is-enabled NetworkManager.service 2>/dev/null && \ ! test -L /etc/resolv.conf 2>/dev/null && \ ! mountpoint /etc/resolv.conf &>/dev/null && \ grep -q 'Generated by NetworkManager' /etc/resolv.conf 2>/dev/null && \ echo -e '/etc/resolv.conf was generated by NetworkManager.\nRemoving it to let systemd-resolved manage this file.' && \ mv -v /etc/resolv.conf /etc/resolv.conf.orig-with-nm && \ ln -sv ../run/systemd/resolve/stub-resolv.conf /etc/resolv.conf 2>/dev/null || : systemctl start systemd-resolved.service &>/dev/null || : fi triggerpostun scriptlet (using /bin/sh) -- systemd < 247.3-2 # This is for upgrades from previous versions before oomd-defaults is available. # We use %triggerpostun here because rpm doesn't allow a second %triggerun with # a different package version. systemctl --no-reload preset systemd-oomd.service &>/dev/null || :
パッケージの依存関係と推奨事項の一覧表示
実行したいもう1つの一般的なタスクは、rpmパッケージの依存関係を見つけることです。タスクを実行できるオプションは-R
です。 (の略-必須
)。たとえば、「gimp」パッケージの依存関係を確認するには、次のコマンドを実行します。
$ rpm -qR gimp
コマンドを実行すると、ソフトウェアの依存関係のリストが画面に報告されます:
/usr/bin/python2 babl(x86-64) >= 0.1.78 config(gimp) = 2:2.10.24-1.fc34 fontconfig >= 2.12.4 freetype >= 2.1.7 gegl04(x86-64) >= 0.4.30 gimp-libs(x86-64) = 2:2.10.24-1.fc34 glib2 >= 2.56.2 gtk2 >= 2.24.32 hicolor-icon-theme [...]
-R
の代わりに -recommends
を使用するオプション クエリしているパッケージで厳密には必要とされていないが、推奨されているソフトウェアのリストを取得できます。
$ rpm -q --recommends gimp
rpmによって廃止されたパッケージのリスト
上記の例と同じように、どのパッケージが廃止されているかを確認できます。 クエリしているパッケージによって。 -obsoletes
を使用するだけです。 オプション:
$ rpm -q --obsoletes gimp
例のコマンドの出力は次のとおりです。
gimp < 2:2.10.24-1.fc34 gimp-help-browser < 2:2.10.24-1.fc34 gimp-unstable < 2:2.10
結論
Rpmは非常に強力なパッケージマネージャーです。このチュートリアルでは、Rpmを「クエリ」モードで実行する方法を説明しました。バージョンやアーキテクチャなど、パッケージに関する一般的な情報を取得する方法、パッケージの変更ログを読み取る方法、パッケージによってインストールされるすべてのファイルを一覧表示する方法、「スクリプトレット」を確認する方法を確認しました。パッケージ管理の一部として、およびパッケージの依存関係と推奨事項のリストを取得する方法として使用されます。