パッケージとはアプリケーションなどのプログラムやそれに関連するファイルとそれとの依存関係の情報を一つにアーカイブしたもので、インストール、アンインストール、更新といった作業を容易に行えるようにしたものである。
Linuxには様々なパッケージ管理システムがあり、ディストリビューションにより採用しているパッケージ管理システムが異なる。RedhatをベースにしているCentOSなどはRPM(8)を採用している。RPMの互換パッケージ管理システムとしてYUM(9)があり、多くのRPM系Linuxディストリビューションの標準パッケージ管理システムとして使用されている。
現在ではパッケージ管理システムが一般的に使用されているが以前のUNIXの流れをくむOSではプログラムをソースコードからインストールするの当たり前だった。
RPMパッケージ管理システムではrpmコマンドを使ってパッケージを管理する。RPMはディスク上にあるローカルパッケージの管理に使用する。ネットワーク上にあるパッケージにも対応しているが依存関係にある他のパッケージをネットワーク上からダウンロードする機能がないので後述するYUMを使う方がよい。
RPMパッケージのファイルの拡張子は.rpmで、ファイル名の規則は次の規則で命名される。
パッケージ名-バージョン番号-リリース番号-アーキテクチャ名.rpm
アーキテクチャ名にはディストリビューション名やプロセッサ名が含まれる。使用しているマシン、ディストリビューションに合ったパッケージしかインストールできない。例えば、かわいらし猫のキャラクタがマウスカーソルを追いかけて走り回るonekoというプログラムのパッケージはhttp://rpmfind.net/linux/rpm2html/search.php?query=onekoから取得できるが、その一覧を見るとディストリビューション、プロセッサごとのパッケージが用意されているのが分かる。
RPMパッケージの管理にはrpmコマンドを使う。ローカルパッケージのインストール、更新などができる。
rpm オプション パッケージ名
オプション | 意味 |
---|---|
-i | パッケージのインストール |
-U | パッケージのアップグレード |
-F | パッケージのアップグレード(以前のバージョンが必要) |
-e | パッケージのアンインストール(削除) |
-q | パッケージの検索 |
オプション | 意味 |
---|---|
--force | 強制的にインストール |
-h | 進行状況の表示 |
--test | インストールせずに動作確認のみ |
-v | パッケージ名の表示 |
-vv | 処理内容を詳細に表示 |
オプション | 意味 |
---|---|
オプション | 意味 |
-a | すべてのパッケージを表示 |
-f | ファイル名を表示 |
-l | パッケージ内のファイル一覧表示 |
-p | パッケージの指定 |
-R | 依存するパッケージの表示 |
それぞれのコマンドを以下に示す。
$ 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パッケージをインストール、アンインストールする。
rpmコマンドは基本的にローカルなPRMファイルを使ってインストールを行うが、依存関係にあるファイルが手元にない場合などはうまくインストールできない。そこでインターネット上にあるパッケージを依存関係を解決しながらインストール、削除できるyumコマンドを使うのが現実的である。
RPMパッケージの格納されているインターネット上あるいはローカルディスク上の場所をリポジトリといい、その情報を記したファイルは/etc/yum.repos.dに置く。yumコマンドそのものの設定は/etc/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コマンドも他のコマンドと同様の書式で実行する。
yum [オプション]コマンド パッケージ名
コマンド | 意味 |
---|---|
install | パッケージのインストール |
update | パッケージのアップデート |
check-update | アップデートのチェック |
remove | パッケージの削除 |
list | 利用可能なパッケージのリスト |
info | パッケージの情報を表示する |
groupinstall | パッケージグループのインストール |
groupupdate | パッケージグループのアップデート |
grouplist | パッケージグループのリスト表示 |
groupinfo | パッケージグループの情報を表示 |
search | 指定した文字列を含むパッケージを検索する |
localinstall | ローカルのrpmファイルでインストールする |
localupdate | ローカルのrpmファイルでアップデートする |
$ yum list $ yum grouplist # yum install package $ yum info package # yum erase package # yum groupinstall grouppack $ yum search string # yum check-update # yum update