Linux LPIC - RPM Package



 ◆ パッケージの管理 - 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分以内にカレントディレクトリにダウンロード可能。
 
※ 2016年現在では、以下の指定したリンクでダウンロードすることができません。


 ◇ パッケージのダウンロード

 # wget http://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%]


 ◆ 実行例 : パッケージのアンインストール
 # rpm -e nmap




 ◇ パッケージのアップグレード ( 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 ファイル名  インストール前のパッケージの詳細情報を表示



LPIC Web教科書

Copyright(C) 2002-2017 ネットワークエンジニアとして All Rights Reserved