Guides, HowTos and Tips for Technology Geeks - The Geek Stuff

Red Hat Enterprise LinuxやFedoraなど、Red Hat系のLinuxディストリビューションではパッケージ管理システムとしてRPMを採用している。このRPMパッケージを操作するコマンドがrpm(1)だ。パッケージのインストール、アンインストール、アップグレード、情報表示、一覧表示、依存関係チェック、比較検証などさまざまな管理を実施できる。RPM Command: 15 Examples to Install, Uninstall, Upgrade, Query RPM Packages - The Geek Stuffにrpm(1)を使った15のコマンド実行例が紹介されており参考になる。紹介されている実行例は次のとおり。

1. パッケージのインストール

  • rpm -ivh MySQL-client-3.23.57-1.i386.rpm
  • -i: パッケージのインストール指定
  • -v: より多く情報を出力する指定
  • -h: パッケージがアンパックされた段階でハッシュマークを出力する指定

2. パッケージのアンインストール

  • rpm -ev MySQL-client
  • -e: パッケージのアンインストール指定
  • -v: より多く情報を出力する指定

3. パッケージのアップグレード

  • rpm -Uvh MySQL-client-3.23.57-1.i386.rpm
  • -U: パッケージのアップグレード指定
  • -v: より多く情報を出力する指定
  • -h: パッケージがアンパックされた段階でハッシュマークを出力する指定

4. 指定したパッケージがインストールされているかを確認

  • rpm -q MySQL-client

5. インストールされているパッケージを一覧表示

  • rpm -qa
  • -a: インストールされているすべてのパッケージを指定

6. インストールされているパッケージを一覧表示(出力フォーマットを指定)

  • rpm -qa --queryformat '%{name-%{version}-%{release} %{size}\n'
  • -a: インストールされているすべてのパッケージを指定
  • --queryformat: 出力フォーマットを指定

7. ファイルがどのパッケージのものかを判定

  • rpm -qf /usr/bin/mysqlaccess
  • -f: 調べたいファイルを指定

8. ファイルが含まれているパッケージのドキュメントを一覧表示

  • rpm -qdf /usr/bin/mysqlaccess
  • -d: 関連するドキュメント一覧を表示する指定

9. インストールされているパッケージの情報を表示

  • rpm -qip MySQL-client-3.23.57-1.i386.rpm
  • -i: 情報を表示する指定
  • -p: 調べたいパッケージを指定

10. パッケージに内包されているファイルを一覧表示

  • rpm -qlp ovpc-2.1.10.rpm
  • -l: パッケージに内包されているファイルの一覧表示を指定
  • -p: 調べたいパッケージを指定

11. パッケージが依存しているパッケージの表示

  • rpm -qRp MySQL-client-3.23.57-1.i386.rpm
  • -R: 対象のパッケージが依存しているパッケージの表示

12. パッケージに内包されているファイルの状態を一覧表示

  • rpm -qsp MySQL-client-3.23.57-1.i386.rpm
  • -s: パッケージ内ファイルの状態を一覧表示する指定

13. インストールされているパッケージを比較検証

  • rpm -vp MySQL-client-3.23.57-1.i386.rpm
  • 表示S: ファイルサイズが違う
  • 表示M: パーミッションやファイルタイプが違う
  • 表示5: MD5チェックサム値が違う
  • 表示D: デバイスメジャー番号またはマイナー番号が違う
  • 表示L: readlink(2)パスが違う
  • 表示U: オーナユーザが違う
  • 表示G: 所属するグループが違う
  • 表示T: 更新時間が違う

14. インストールされているすべてのパッケージを比較検証

  • rpm -va

15. rpm -vf 指定したファイルを保持するパッケージを比較検証

  • rpm -vf /usr/bin/mysqlaccess