LinuxでのRPMコマンドの20の実用例


RPM(Red Hat Package Manager)は、デフォルトのオープンソースであり、(RHEL、CentOS、Fedora)などのRedHatベースのシステムで最も人気のあるパッケージ管理ユーティリティです。このツールを使用すると、システム管理者とユーザーは、Unix/Linuxオペレーティングシステムのシステムソフトウェアパッケージをインストール、更新、アンインストール、クエリ、検証、および管理できます。以前は.rpmファイルと呼ばれていたRPMで、パッケージに必要なコンパイル済みソフトウェアプログラムとライブラリが含まれています。このユーティリティは、.rpm形式でビルドされたパッケージでのみ機能します。

この記事では、役立つ20RPMコマンドの例をいくつか紹介します。これらのrpmコマンドを使用すると、Linuxシステムでパッケージをインストール、更新、削除することができます。

RPMに関するいくつかの事実(RedHat Package Manager)

  1. RPM is free and released under GPL (General Public License).
  2. RPM keeps the information of all the installed packages under /var/lib/rpm database.
  3. RPM is the only way to install packages under Linux systems, if you’ve installed packages using source code, then rpm won’t manage it.
  4. RPM deals with .rpm files, which contains the actual information about the packages such as: what it is, from where it comes, dependencies info, version info etc.

RPMコマンドには5つの基本モードがあります

  1. Install : It is used to install any RPM package.
  2. Remove : It is used to erase, remove or un-install any RPM package.
  3. Upgrade : It is used to update the existing RPM package.
  4. Verify : It is used to verify an RPM packages.
  5. Query : It is used query any RPM package.

RPMパッケージの場所

以下は、すべてのRPMパッケージを見つけてダウンロードできるrpmサイトのリストです。

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

また読む:

  1. 20 YUM Command Examples in Linux
  2. 10 Wget Command Examples in Linux
  3. 30 Most Useful Linux Commands for System Administrators

Linuxにパッケージをインストールするときは、rootユーザーである必要があります。root権限を使用すると、適切なオプションを使用してrpmコマンドを管理できます。

1.RPM署名パッケージを確認する方法

Linuxシステムにパッケージをインストールする前に、パッケージのPGP署名を常にチェックし、その整合性と出所に問題がないことを確認してください。次のコマンドを–checksig(署名の確認)オプションとともに使用して、pidginと呼ばれるパッケージの署名を確認します。

[[email protected]]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2.RPMパッケージをインストールする方法

rpmソフトウェアパッケージをインストールするには、-iオプションを指定して次のコマンドを使用します。たとえば、pidgin-2.7.9-5.el6.2.i686.rpmというrpmパッケージをインストールするには。

[[email protected]]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing...                ########################################### [100%]
   1:pidgin                 ########################################### [100%]
  1. -i : install a package
  2. -v : verbose for a nicer display
  3. -h: print hash marks as the package archive is unpacked.

3.インストールする前にRPMパッケージの依存関係を確認する方法

パッケージをインストールまたはアップグレードする前に、依存関係のチェックを行いたいとします。たとえば、次のコマンドを使用して、BitTorrent-5.2.2-1-Python2.4.noarch.rpmパッケージの依存関係を確認します。パッケージの依存関係のリストが表示されます。

[[email protected]]# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4
python >= 2.3
python(abi) = 2.4
python-crypto >= 2.0
python-psyco
python-twisted >= 2.0
python-zopeinterface
rpmlib(CompressedFileNames) = 2.6
  1. -q : Query a package
  2. -p : List capabilities this package provides.
  3. -R: List capabilities on which this package depends..

4.依存関係なしでRPMパッケージをインストールする方法

必要なすべてのパッケージがすでにインストールされていて、RPMが愚かであることがわかっている場合は、パッケージをインストールする前にオプション–nodeps(依存関係チェックなし)を使用して、これらの依存関係を無視できます。

[[email protected]]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]

上記のコマンドは、依存関係エラーを無視してrpmパッケージを強制的にインストールしますが、それらの依存関係ファイルが欠落している場合、それらをインストールするまで、プログラムはまったく機能しません。

5.インストールされているRPMパッケージを確認する方法

パッケージ名で-qオプションを使用すると、rpmがインストールされているかどうかが表示されます。

[[email protected]]# rpm -q BitTorrent

BitTorrent-5.2.2-1.noarch

6.インストールされているRPMパッケージのすべてのファイルを一覧表示する方法

インストールされているrpmパッケージのすべてのファイルを表示するには、rpmコマンドで-ql(クエリリスト)を使用します。

[[email protected]]# rpm -ql BitTorrent

/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console

7.最近インストールされたRPMパッケージを一覧表示する方法

-qa(query all)オプションを指定して次のrpmコマンドを使用すると、最近インストールされたすべてのrpmパッケージが一覧表示されます。

[[email protected]]# rpm -qa --last

BitTorrent-5.2.2-1.noarch                     Tue 04 Dec 2012 05:14:06 PM BDT
pidgin-2.7.9-5.el6.2.i686                     Tue 04 Dec 2012 05:13:51 PM BDT
cyrus-sasl-devel-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:06 PM BDT
cyrus-sasl-2.1.23-13.el6_3.1.i686             Tue 04 Dec 2012 04:43:05 PM BDT
cyrus-sasl-md5-2.1.23-13.el6_3.1.i686         Tue 04 Dec 2012 04:43:04 PM BDT
cyrus-sasl-plain-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:03 PM BDT

8.インストールされているすべてのRPMパッケージを一覧表示する方法

次のコマンドを入力して、Linuxシステムにインストールされているパッケージのすべての名前を出力します。

[[email protected]]# rpm -qa

initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686

9.RPMパッケージをアップグレードする方法

RPMパッケージをアップグレードする場合は、「– U」(アップグレード)オプションが使用されます。このオプションを使用する主な利点の1つは、パッケージの最新バージョンをアップグレードするだけでなく、アップグレードされた新しいパッケージが以前にインストールされたパッケージを実行しない場合に備えて、古いパッケージのバックアップも維持することです。再び使用することができます。

[[email protected]]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]

10.RPMパッケージを削除する方法

たとえば、RPMパッケージをアンインストールするには、元のパッケージ名nx-3.5.0-2.el6.centos.i686.rpmではなく、パッケージ名nxを使用します。 -e(消去)オプションは、パッケージを削除するために使用されます。

[[email protected]]# rpm -evv nx

11.依存関係のないRPMパッケージを削除する方法

–nodeps(依存関係をチェックしない)オプションは、rpmパッケージをシステムから強制的に削除します。ただし、特定のパッケージを削除すると、他の動作中のアプリケーションが破損する可能性があることに注意してください。

[[email protected]]# rpm -ev --nodeps vsftpd

12.どのRPMパッケージに属するファイルを照会する方法

たとえば、ファイルのリストがあり、どのパッケージがこれらのファイルに属しているかを調べたいとします。たとえば、-qf(クエリファイル)オプションを指定した次のコマンドは、ファイル/ usr/bin/htpasswdがパッケージhttpd-tools-2.2.15-15.el6.centos.1.i686によって所有されていることを示します。

[[email protected]]# rpm -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686

13.インストールされているRPMパッケージの情報を照会する方法

rpmパッケージをインストールしていて、パッケージに関する情報を知りたいとします。次の-qi(クエリ情報)オプションは、インストールされたパッケージの利用可能な情報を出力します。

[[email protected]]# rpm -qi vsftpd

Name        : vsftpd				   Relocations: (not relocatable)
Version     : 2.2.2				   Vendor: CentOS
Release     : 11.el6				   Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
Install Date: Mon 17 Sep 2012 07:55:28 PM BDT      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons           Source RPM: vsftpd-2.2.2-11.el6.src.rpm
Size        : 351932                               License: GPLv2 with exceptions
Signature   : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

14.インストールする前にRPMパッケージの情報を取得します

インターネットからパッケージをダウンロードしていて、インストールする前にパッケージの情報を知りたい。たとえば、次のオプション-qip(クエリ情報パッケージ)は、パッケージsqlbuddyの情報を出力します。

[[email protected]]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description :
SQLBuddy is a PHP script that allows for web-based MySQL administration.

15.インストールされたRPMパッケージのドキュメントを照会する方法

インストールされたパッケージの利用可能なドキュメントのリストを取得するには、オプション-qdf(クエリドキュメントファイル)を指定して次のコマンドを使用すると、vmstatパッケージに関連するマニュアルページが表示されます。

[[email protected]]# rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO

16.RPMパッケージを確認する方法

パッケージを検証すると、パッケージにインストールされているファイルの情報がrpmデータベースと比較されます。 -Vp(パッケージの検証)は、パッケージの検証に使用されます。

[[email protected] downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17.すべてのRPMパッケージを確認する方法

次のコマンドを入力して、インストールされているすべてのrpmパッケージを確認します。

[[email protected]]# rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. RPMGPGキーをインポートする方法

RHEL/CentOS/Fedoraパッケージを確認するには、GPGキーをインポートする必要があります。これを行うには、次のコマンドを実行します。 CentOS 6GPGキーをインポートします。

[[email protected]]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19.インポートされたすべてのRPMGPGキーを一覧表示する方法

システムにインポートされたすべてのGPGキーを印刷するには、次のコマンドを使用します。

[[email protected]]# rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20.破損したRPMデータベースを再構築する方法

rpmデータベースが破損し、システム上のrpmおよびその他のアプリケーションのすべての機能が停止することがあります。そのため、その時点で、rpmデータベースを再構築し、次のコマンドを使用して復元する必要があります。

[[email protected]]# cd /var/lib
[[email protected]]# rm __db*
[[email protected]]# rpm --rebuilddb
[[email protected]]# rpmdb_verify Packages