第 26章ソフトウェアの管理

26.1. パッケージ管理ツールの概要

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 上で動作するグラフィカルモードでの動作をサポートしているため、以降では、これら両モードの操作手順を解説します。