Powered by SmartDoc

パッケージ管理

パッケージとはアプリケーションなどのプログラムやそれに関連するファイルとそれとの依存関係の情報を一つにアーカイブしたもので、インストール、アンインストール、更新といった作業を容易に行えるようにしたものである。

Linuxには様々なパッケージ管理システムがあり、ディストリビューションにより採用しているパッケージ管理システムが異なる。RedhatをベースにしているCentOSなどはRPM(8)を採用している。RPMの互換パッケージ管理システムとしてYUM(9)があり、多くのRPM系Linuxディストリビューションの標準パッケージ管理システムとして使用されている。

現在ではパッケージ管理システムが一般的に使用されているが以前のUNIXの流れをくむOSではプログラムをソースコードからインストールするの当たり前だった。

  1. RPM Package Manager
  2. Yellow dog Updater, Modified

RPMパッケージ

RPMパッケージ管理システムではrpmコマンドを使ってパッケージを管理する。RPMはディスク上にあるローカルパッケージの管理に使用する。ネットワーク上にあるパッケージにも対応しているが依存関係にある他のパッケージをネットワーク上からダウンロードする機能がないので後述するYUMを使う方がよい。

RPMパッケージのファイルの拡張子は.rpmで、ファイル名の規則は次の規則で命名される。

パッケージ名-バージョン番号-リリース番号-アーキテクチャ名.rpm

アーキテクチャ名にはディストリビューション名やプロセッサ名が含まれる。使用しているマシン、ディストリビューションに合ったパッケージしかインストールできない。例えば、かわいらし猫のキャラクタがマウスカーソルを追いかけて走り回るonekoというプログラムのパッケージはhttp://rpmfind.net/linux/rpm2html/search.php?query=onekoから取得できるが、その一覧を見るとディストリビューション、プロセッサごとのパッケージが用意されているのが分かる。

rpmコマンド

RPMパッケージの管理にはrpmコマンドを使う。ローカルパッケージのインストール、更新などができる。

書式とオプション

rpmコマンドの書式
rpm オプション パッケージ名
オプション
オプション 意味
-i パッケージのインストール
-U パッケージのアップグレード
-F パッケージのアップグレード(以前のバージョンが必要)
-e パッケージのアンインストール(削除)
-q パッケージの検索
-i、-Uオプションと併用するオプション
オプション 意味
--force 強制的にインストール
-h 進行状況の表示
--test インストールせずに動作確認のみ
-v パッケージ名の表示
-vv 処理内容を詳細に表示
-i、-Uオプションと併用するオプション
オプション 意味
オプション 意味
-a すべてのパッケージを表示
-f ファイル名を表示
-l パッケージ内のファイル一覧表示
-p パッケージの指定
-R 依存するパッケージの表示

rpmコマンドの使用例

  1. パッケージpackage.rpmをインストールする
  2. パッケージpackageをアンインストールする
  3. パッケージhttpdがインストールされているかを調べる
  4. 文字列bindを含むパッケージがインストールされているか調べる。
  5. パッケージbindの情報を表示する
  6. ファイル/bin/lsのパッケージ名を表示する
  7. コマンドxeyesを含むパッケージ名を表示する

それぞれのコマンドを以下に示す。

$ rpm -ivh package.rpm
$ rpm -e package
$ rpm -q httpd
$ rpm -qa | grep bind
$ rpm -qi bind
$ rpm -qf /bin/ls
$ rpm -qf `which xeyes`

演習

onekoパッケージをインストール、アンインストールする。

yumコマンド

rpmコマンドは基本的にローカルなPRMファイルを使ってインストールを行うが、依存関係にあるファイルが手元にない場合などはうまくインストールできない。そこでインターネット上にあるパッケージを依存関係を解決しながらインストール、削除できるyumコマンドを使うのが現実的である。

RPMパッケージの格納されているインターネット上あるいはローカルディスク上の場所をリポジトリといい、その情報を記したファイルは/etc/yum.repos.dに置く。yumコマンドそのものの設定は/etc/yum.confで学校のようにプロキシがある場合、プロキシサーバの情報をこのファイルに記しておきます。

yumコマンド利用のための設定

yum.confにプロキシサーバを登録
proxy=http://cache2.st1.hac.neec.ac.jp:8080/

もし、プロキシの内環境でも使用するときはこの設定が邪魔をするので上記設定をyum.confに記さず、yumコマンド実行前に次のコマンドを実行し、環境変数にプロキシサーバの情報を保存しておく。

環境変数にプロキシサーバの情報を保存
# export http_proxy=http://cache2.st1.hac.neec.ac.jp:8080/

コマンドの書式とオプション

yumコマンドも他のコマンドと同様の書式で実行する。

rpmコマンドの書式
yum [オプション]コマンド パッケージ名
yumのサブコマンド
コマンド 意味
install パッケージのインストール
update パッケージのアップデート
check-update アップデートのチェック
remove パッケージの削除
list 利用可能なパッケージのリスト
info パッケージの情報を表示する
groupinstall パッケージグループのインストール
groupupdate パッケージグループのアップデート
grouplist パッケージグループのリスト表示
groupinfo パッケージグループの情報を表示
search 指定した文字列を含むパッケージを検索する
localinstall ローカルのrpmファイルでインストールする
localupdate ローカルのrpmファイルでアップデートする

yumコマンドの使用例

  1. パッケージのリストを表示する
  2. パッケージグループのリストを表示する
  3. パッケージpackageをインストールする
  4. パッケージpackageの情報を表示する
  5. パッケージpackageを削除する
  6. パッケージグループgrouppackをインストールする
  7. 指定して文字列を含むパッケージ名やその説明を検索する
  8. アップデート可能なパッケージを検索する
  9. アップデートの実行
使用例のコマンド
$ yum list
$ yum grouplist
# yum install package
$ yum info package
# yum erase package
# yum groupinstall grouppack
$ yum search string
# yum check-update
# yum update

演習

  1. プロキシ設定を追加し、実習してで使用できるようにする。
  2. コマンド使用例を実際に実行し、このコマンドの使い方を確認する。