Turbolinux のソフトウェアはパッケージという単位で管理されています。パッケージには、ソフトウェアのバイナリファイル、設定ファイル、ドキュメントなど、そのソフトウェアに関連するファイルが含まれています。ソフトウェアをパッケージ単位で管理することによって、ソフトウェアのインストール、アンインストール、アップグレード等の作業が容易となります。Linux で利用されているパッケージ管理システムには、いくつかの種類がありますが 、Turbolinux では、RPM(Red Hat Package Manager)と呼ばれるパッケージ管理システムを採用しています。RPM パッケージは、Linux で標準になりつつあるソフトウェア配布手段の 1 つで、多くのディストリビューションが採用しています。しかし、パッケージのインストールやアンインストールを行うには、パッケージ間の依存関係を解決する必要があるため、ほれほど単純な作業ではありません。例えば、RPM の管理コマンドである rpm でパッケージのインストールを試みると、以下のようなメッセージが出力されることがあります。
# rpm -ivh package2.i586.rpm
error: failed dependencies:
package1 >= 2.0.0 is needed by package2 |
これは、package2 をインストールするためには、バージョン 2.0.0 以上の package1 が必要であることを表しています。この例のようにパッケージが 2 つであれば以下のように rpm コマンドを実行しインストールすることができます。
# rpm -ivh package1.i586.rpm package2.i586.rpm 1:package1 ########################################### [ 50%] 2:package2 ########################################### [100%] |
しかし、パッケージによっては 1 つのパッケージをインストールするために数十個のパッケージを同時にインストールしなければならないものもあります。例えば rpm -e --test コマンドを実行して Apache Web サーバーのパッケージである httpd のアンインストールを試行してみます。
# rpm -e --test httpd
error: Failed dependencies:
httpd >= 2.0.40 is needed by (installed) php4-4.3.8-5
httpd >= 2.0.40 is needed by (installed) php-pear-log-1.8.4-2
httpd >= 2.0.40 is needed by (installed) horde-2.2.5-1
httpd is needed by (installed) analog-5.32-2
httpd is needed by (installed) bgraphs-1.1-3
httpd = 2.0.50 is needed by (installed) httpd-devel-2.0.50-7
httpd >= 2.0.40 is needed by (installed) imp-3.2.4-1
httpd is needed by (installed) mod_bwshare-2.0.50-7
httpd >= 2.0.50 is needed by (installed) mod_python-3.1.3-1
httpd >= 2.0.50 is needed by (installed) mod_ruby-1.2.0-2
httpd is needed by (installed) mod_ssl-2.0.50-7
httpd-mmn = 20020903 is needed by (installed) php4-4.3.8-5
httpd-mmn = 20020903 is needed by (installed) mod_ssl-2.0.50-7
libapr-0.so.0 is needed by (installed) mod_perl-1.99_14-1
libaprutil-0.so.0 is needed by (installed) mod_perl-1.99_14-1
webserver is needed by (installed) mod_encoding-20021209-1
/var/www is needed by (installed) analog-5.32-2
/var/www is needed by (installed) cvsweb-3.0.1-1 |
多くのパッケージが httpd を必要としているためアンインストールできないことがわかります。Linux 上で動いているアプリケーションは、 このように様々なパッケージが共存、協調しあい動作しています。あるパッケージをインストールするためには、何のパッケージと共にインストールしなければならないのかを知るには、ある程度の知識と経験が必要になります。その逆に、あるパッケージをアンインストールするには、そのパッケージを必要としている他のパッケージを事前にアンインストールしておかなければなりません。このような問題を解消するために、パッケージ間の依存関係を自動で調査し、その結果をシステム管理者に伝え、必要であれば複数のパッケージを同時にインストール、またはアンインストールしてくれるのかパッケージ管理ツール turbopkg(zabom)です。
この章では、turbopkg を操作してパッケージをインストール、アンインストール、アップデートする手順について解説します。turbopkg は、コンソール上で動作するコンソールモードと X Window System 上で動作するグラフィカルモードでの動作をサポートしているため、以降では、これら両モードの操作手順を解説します。