RPMは「RedhatPackageManager」の略で、RHEL/CentOSベースのオペレーティングシステム用のコマンドラインパッケージ管理ツールです。 RPMコマンドを使用して、パッケージのインストール、アンインストール、更新、クエリ、および検証を行うことができます。このツールは、.rpm形式でビルドされたパッケージでのみ機能します。 RPMコマンドは、指定されたパッケージのみをインストールでき、そのパッケージに必要な依存関係をインストールすることはできません。
このチュートリアルでは、RPMパッケージマネージャーの使用方法をいくつかの例とともに示します。新しいRedHatパッケージマネージャーDNFのガイドをお探しの場合は、こちらをご覧ください:コマンドラインでのDNFを使用したCentOS8パッケージ管理
- CentOS、RHEL、またはFedoraを実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
RPMコマンドの基本的な構文を以下に示します。
rpm [OPTION] [PACKAGENAME]
次のコマンドを使用して、RPMコマンドで使用可能なすべてのオプションを一覧表示できます。
rpm --help
次の画面が表示されます。
RPMを使用したパッケージのインストール、更新、および削除
RPMパッケージをインストールする前に、次のコマンドを使用してそのパッケージの依存関係を一覧表示できます。
rpm -qpR epel-release-latest-8.noarch.rpm
出力:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY config(epel-release) = 8-7.el8 redhat-release >= 8 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1
次のコマンドを使用して、そのパッケージの情報を取得することもできます。
rpm -qip epel-release-latest-8.noarch.rpm
出力:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Name : epel-release Version : 8 Release : 7.el8 Architecture: noarch Install Date: (not installed) Group : System Environment/Base Size : 30269 License : GPLv2 Signature : RSA/SHA256, Thursday 10 October 2019 12:19:30 PM EDT, Key ID 21ea45ab2f86d6a1 Source RPM : epel-release-8-7.el8.src.rpm Build Date : Thursday 10 October 2019 12:16:18 PM EDT Build Host : buildvm-04.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://download.fedoraproject.org/pub/epel Bug URL : https://bugz.fedoraproject.org/epel-release Summary : Extra Packages for Enterprise Linux repository configuration Description : This package contains the Extra Packages for Enterprise Linux (EPEL) repository GPG key as well as configuration for yum.
このパッケージは、次のコマンドを使用してインストールできます。
rpm -ivh epel-release-latest-8.noarch.rpm
出力:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:epel-release-8-7.el8 ################################# [100%]
次のコマンドを使用して、依存関係なしで任意のRPMパッケージをインストールできます。
rpm -ivh --nodeps epel-release-latest-8.noarch.rpm
インストールされているRPMパッケージを更新するには、次のコマンドを実行します。
rpm -Uvh epel-release-latest-8.noarch.rpm
出力:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] package epel-release-8-7.el8.noarch is already installed
インストールされているRPMパッケージを削除するには、次のコマンドを実行します。
rpm -ev epel-release
出力:
Preparing packages... epel-release-8-7.el8.noarch
RPMでパッケージ情報を表示
パッケージの詳細情報を表示するには、次のコマンドを実行します。
rpm -ql epel-release
出力:
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 /etc/yum.repos.d/epel-playground.repo /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel.repo /usr/lib/systemd/system-preset/90-epel.preset /usr/share/doc/epel-release /usr/share/doc/epel-release/GPL /usr/share/doc/epel-release/README-epel-8-packaging.md
次のコマンドを使用して、任意のパッケージの構成ファイルを見つけることができます。
rpm -qc httpd
出力:
/etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.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-optional.conf /etc/httpd/conf.modules.d/00-proxy.conf /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.modules.d/01-cgi.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/logrotate.d/httpd /etc/sysconfig/htcacheclean
次のコマンドを使用して、任意のパッケージに関する詳細情報を表示できます。
rpm -qi httpd
出力:
Name : httpd Version : 2.4.37 Release : 16.module_el8.1.0+256+ae790463 Architecture: x86_64 Install Date: Thursday 23 January 2020 11:48:36 PM EST Group : System Environment/Daemons Size : 5611291 License : ASL 2.0 Signature : RSA/SHA256, Monday 23 December 2019 05:22:02 PM EST, Key ID 05b555b38483c65d Source RPM : httpd-2.4.37-16.module_el8.1.0+256+ae790463.src.rpm Build Date : Monday 23 December 2019 03:46:30 PM EST Build Host : x86-02.mbox.centos.org Relocations : (not relocatable) Packager : CentOS Buildsys <[email protected]> Vendor : CentOS URL : https://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.
次のコマンドを使用して、ディレクトリまたはファイルからパッケージを検索するには:
rpm -qf /etc/NetworkManager/
出力:
NetworkManager-1.14.0-14.el8.x86_64 dhcp-client-4.3.6-30.el8.x86_64
次のコマンドを使用して、インストールする前にパッケージを確認するには:
rpm -Vp epel-release-latest-8.noarch.rpm
出力:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
インストールされているすべてのrpmパッケージを確認するには、次のコマンドを実行します。
rpm -Va
出力:
.......T. c /etc/kdump.conf .M....... g /var/lib/plymouth/boot-duration .M....... g /var/cache/dnf/packages.db .....UG.. g /var/lib/sss/mc/group .....UG.. g /var/lib/sss/mc/initgroups .....UG.. g /var/lib/sss/mc/passwd .M....... c /etc/rc.d/rc.local .M....... c /etc/machine-id
RPMを使用してインストールされたパッケージに関する情報を確認する
次のコマンドを使用して、パッケージがインストールされているかどうかを確認するには:
インストールされているパッケージを確認するには、次のコマンドを実行します。
rpm -q epel-release
指定したパッケージがインストールされている場合は、次の出力が表示されます。
epel-release-8-7.el8.noarch
インストールされていないパッケージを確認するには、次のコマンドを実行します。
rpm -q mysql-server
次の出力が得られるはずです:
package mysql-server is not installed
システムにインストールされているすべてのパッケージを一覧表示するには、次のコマンドを実行します。
rpm -qa
出力:
dos2unix-7.4.0-3.el8.x86_64 platform-python-pip-9.0.3-13.el8.noarch geolite2-country-20180605-1.el8.noarch symlinks-1.4-19.el8.x86_64 python3-six-1.11.0-8.el8.noarch fontpackages-filesystem-1.44-22.el8.noarch rootfiles-8.1-22.el8.noarch polkit-0.115-6.el8.x86_64 xkeyboard-config-2.24-3.el8.noarch iwl6050-firmware-41.28.5.1-92.el8.1.noarch libmodulemd1-1.8.0-5.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch iwl5000-firmware-8.83.5.1_1-92.el8.1.noarch samba-common-4.9.1-8.el8.noarch kbd-misc-2.0.4-8.el8.noarch
インストールされているすべてのパッケージを名前とサイズで一覧表示するには、次のコマンドを実行します。
rpm -qa --queryformat '%{name} %{size}\n'
出力:
dos2unix 682042 platform-python-pip 7746190 geolite2-country 3424334 symlinks 19682 python3-six 100282 fontpackages-filesystem 0 rootfiles 599
RPMを使用した任意のパッケージのマニュアルページを検索
次のコマンドを実行して、ファイルまたはフォルダーを所有するパッケージのドキュメントのリストを確認できます。
rpm -qdf /etc/NetworkManager/
出力:
/usr/share/doc/NetworkManager/AUTHORS /usr/share/doc/NetworkManager/CONTRIBUTING /usr/share/doc/NetworkManager/NEWS /usr/share/doc/NetworkManager/README /usr/share/doc/NetworkManager/TODO /usr/share/doc/NetworkManager/examples/server.conf /usr/share/man/man1/nm-online.1.gz /usr/share/man/man1/nmcli.1.gz /usr/share/man/man5/NetworkManager.conf.5.gz /usr/share/man/man5/nm-settings-ifcfg-rh.5.gz /usr/share/man/man5/nm-settings-keyfile.5.gz /usr/share/man/man5/nm-settings.5.gz /usr/share/man/man5/nm-system-settings.conf.5.gz /usr/share/man/man7/nmcli-examples.7.gz /usr/share/man/man8/NetworkManager.8.gz /usr/share/doc/dhcp-client/README.dhclient.d /usr/share/doc/dhcp-client/dhclient-enter-hooks /usr/share/doc/dhcp-client/dhclient.conf.example /usr/share/doc/dhcp-client/dhclient6.conf.example /usr/share/man/man5/dhclient.conf.5.gz /usr/share/man/man5/dhclient.leases.5.gz /usr/share/man/man8/dhclient-script.8.gz /usr/share/man/man8/dhclient.8.gz
上記のチュートリアルでは、CentOS8オペレーティングシステムでRPMを使用してパッケージを管理する方法を学びました。これが日常のタスクの実行に役立つことを願っています。