◆ パッケージの管理 - RPMパッケージの管理
RPMはRedHat社が開発したソフトウェアのパッケージ管理システム。現在はRedHat系のCentOS、Fedora
等のディストリビューションにも採用されています。RPM形式のパッケージファイルの見方は以下のとおり。
例として紹介している以下の「nmap」というパッケージは、ポートスキャンを行うアプリケーションです。
RPMパッケージは、RPMコマンドを使用してインストール、アンインストール、アップデートできます。
◆ 構文 : rpm [ オプション ] パッケージ名
◆ RPMコマンド - インストール/アップグレードモード
インストール・アップグレードモード |
説明 |
-i パッケージファイル名 |
指定したキーワードを含むパッケージをインストール |
-U パッケージファイル名 |
指定したパッケージのアップグレード(存在しない場合はインストールする) |
-F パッケージファイル名 |
指定したパッケージのアップグレード(存在しない場合はインストールしない) |
併用
オプション |
-v |
詳細な情報を表示する |
-h |
インストールの進行状況を # で表示する |
--nodeps |
パッケージの依存関係を無視してインストール |
--force |
既存のファイルを新しいものに置き換える |
--prefix |
パッケージをインストールするディレクトリを指定 |
--test |
インストールはせずにテストを実施 |
◆ RPMコマンド - アンインストールモード
アンインストールモード |
説明 |
-e パッケージ名 |
パッケージをアンインストール |
併用オプション |
--nodeps |
依存関係を無視してアンインストール |
◆ RPMコマンド - 照会モード
照会モード |
説明 |
-q パッケージ名 |
指定したパッケージがインストールされているか照会 |
併用オプション |
-a |
インストール済みの全てのパッケージを表示 |
-c |
設定ファイルのみを表示 |
-d |
ドキュメントのみを表示 |
-i |
指定したパッケージの詳細情報を表示 |
-l |
指定したパッケージに含まれるファイルを一覧表示 |
-R |
指定したパッケージが依存しているファイルなどを表示 |
-f ファイル名 |
指定したファイルを含むパッケージ名を表示 |
-p パッケージファイル名 |
指定したパッケージファイルの情報を表示 |
-changelog |
パッケージの変更履歴を表示 |
以下では、実際にnmapのパッケージをダウンロードしてから、rpmコマンドでステータス確認を行います。
先ずインストールするパッケージのダウンロードをwgetコマンドで行います。パッケージファイルを例えば
Asia/Japanの ftp.riken.jp からダウンロードします。1分以内にカレントディレクトリにダウンロード可能。
◆ パッケージのダウンロード
# wget https://ftp.riken.jp/Linux/centos/6.4/os/i386/Packages/nmap-5.51-2.el6.i686.rpm |
※ 一般的には、CentOSのパッケージ管理といえばYUMツールを使用してダウンロード&インストールを行うので、wgetは不要。
◆ パッケージのインストールとアンインストール
以下はパッケージのインストール時に -i オプションに加えて、詳細に情報表示する -v の併用オプションと
進捗状況を示す -h の併用オプションを追加しているので rpm -ivh と指定しています。RPMコマンドでは、
オプションごとに併用可能なオプションを決まっているのでセットで覚えるようにしましょう。
◆ 実行例 : パッケージのインストール
# rpm -ivh nmap-5.51-2.el6.i686.rpm
Preparing... ########################################### [100%]
1:nmap ########################################### [100%]
|
◆ 実行例 : パッケージのアンインストール
◆ パッケージのアップグレード:2パターン
それぞれ事前に rpm -e nmap でパッケージをアンインストールして、以下の2パターンの違いを確認。
◆ 実行例 : パッケージのアップグレード (パッケージが存在しない場合、新規インストールを行う)
# rpm -Uvh nmap-5.51-2.el6.i686.rpm
Preparing... ########################################### [100%]
1:nmap ########################################### [100%]
|
◆ 実行例 : パッケージのアップグレード (パッケージが存在しない場合、新規インストールは行わない)
# rpm -Fvh nmap-5.51-2.el6.i686.rpm |
※ nmap パッケージがインストールされたかどうかは rpm -q nmap コマンドにより確認できます。
◆ パッケージの依存関係
パッケージのインストール時に、パッケージの依存関係に問題がある場合、以下のようにエラーが表示
されて処理が中断されます。非推奨ではありますが、この依存関係を無視して強制的にインストールする
ことも可能。インストール時に --nodeps オプションを追加することで、強制的ばインストールが可能。
◆ 依存関係に問題があり、エラーが発生して処理が中断する例
# rpm -ivh emacs-23.1-21.el6_2.3.i686.rpm
error: Failed dependencies:
emacs-common = 1:23.1-21.el6_2.3 is needed by emacs-1:23.1-21.el6_2.3.i686
libXpm.so.4 is needed by emacs-1:23.1-21.el6_2.3.i686
libgif.so.4 is needed by emacs-1:23.1-21.el6_2.3.i686
|
◆ --nodepsオプションにより強制的にインストールする例
# rpm -ivh --nodeps emacs-23.1-21.el6_2.3.i686.rpm
Preparing... ########################################### [100%]
1:emacs ########################################### [100%]
|
◆ パッケージ情報の参照
◆ インストール済みのパッケージ一覧の表示
# rpm -qa
tibetan-machine-uni-fonts-1.901-5.el6.noarch
elfutils-0.152-1.el6.i686
hal-0.5.14-11.el6.i686
xkeyboard-config-2.6-6.el6.noarch
以降省略
|
◆ インストールされたファイルの一覧を表示
# rpm -ql nmap
/usr/bin/ncat
/usr/bin/ndiff
/usr/bin/nmap
/usr/bin/nping
/usr/share/doc/nmap-5.51
/usr/share/doc/nmap-5.51/COPYING
/usr/share/doc/nmap-5.51/README
/usr/share/doc/nmap-5.51/nmap.usage.txt
以降省略
|
※ パッケージファイルに含まれているファイル一覧は rpm -qlp nmap-5.51-2.el6.i686.rpm で確認。rpm -ql
namp と同じ。
◆ インストール済みのパッケージの詳細情報を表示
# rpm -qi namp
Name : nmap Relocations: (not relocatable)
Version : 5.51 Vendor: CentOS
Release : 2.el6 Build Date: Fri 22 Jun 2012 05:44:22 AM PDT
以降省略
|
※ インストール前のパッケージの詳細情報は rpm -qip nmap-5.51-2.el6.i686.rpm で確認可。基本的に rpm -qi と同じ。
◆ よく使用する -q オプションの一覧
オプション |
説明 |
-qa |
インストール済みのパッケージ一覧の表示 |
-ql パッケージ名 |
インストール済みのパッケージに含まれるファイルの一覧表示 |
-qi パッケージ名 |
インストール済みのパッケージの詳細情報を表示 |
-qlp ファイル名 |
インストール前のパッケージに含まれるファイルの一覧表示 |
-qip ファイル名 |
インストール前のパッケージの詳細情報を表示 |
|