特集
» 2008年03月19日 03時30分 UPDATE

Leverage OSS:不要なパッケージを完全に削除できるインストーラー GNU Stow (1/2)

Linuxを使っていて、自分でコンパイルしインストールするタイプのパッケージ管理が面倒に感じたことはないだろうか。その煩わしさを解消するパッケージマネージャ「GNU Stow」を紹介しよう。

[David-A.-Harding,Open Tech Press]
SourceForge.JP Magazine

 フリーソフトウェアでは、インストール関連の手順が十分に説明されていないことが多い。例えば、インストールしたパッケージが気に入らなかったときに削除する方法や、気に入ったパッケージをアップグレードする方法が分からないことがある。しかし、GNU Stowを使えば、このどちらの問題にも容易に対処できる。Stowは、自分でコンパイルしインストールするタイプのパッケージのためのパッケージマネージャだ。

 StowはGNU/Linuxディストリビューションの開発でよく使われている。従って、主要なGNU/Linuxディストリビューションであれば、デフォルトのパッケージリポジトリに含まれている。ほかに必要なパッケージはPerlだけだ。両方ともないディストリビューションの場合でも、簡単なブートストラッピングインストールで、両方インストールできる。

 Stowでパッケージを作成してインストールする場合は、ソースパッケージに付属するインストール手順の「make install」部分を次のように一部(太字の部分)変更する。

sudo make install prefix=/usr/local/stow/pkgname

cd /usr/local/stow

sudo stow pkgname


 最初に、「make install」を実行する。これによりprefix=変数に指定されているディレクトリが作成され、そのディレクトリにパッケージの全ファイルが格納される。そのディレクトリを/usr/local/stow/に変更するのは/usr/local/にインストールするためだ。というのは、Stowはカレントディレクトリの「1つ上」にパッケージをインストールするからだ。

 次に、「stow pkgname」を実行する。これにより、パッケージディレクトリの下にある各ファイルのシンボリックリンクが/usr/local/に作られ、stow/pkgname/を省いてパスを指定できるようになる。従って、ほとんどのシェルやアプリケーション・ランチャーでは、vimと入力するだけで/usr/local/stow/vim-7.0/bin/vimを起動することができる。

AutoConfが使われていない場合

 UNIX系OS向けに作られたフリー・ソフトウェア・パッケージのほとんどは、GNU AutoConfを使ってビルドされており、そうしたパッケージでは「make install」コマンドでprefix=変数を使うことができる。従って、上の方法を使ってインストール可能だ。しかし、中にはAutoConfを使っていないパッケージもあり、prefix=変数に対応していないことがある。そうしたパッケージをStowでインストールする場合は、パッケージのMakefileまたはインストールスクリプトを変更する。

 まず、パッケージに付属するインストール手順説明書(通常はREADMEまたはINSTALLという名のファイル)を探し、手順を確認する。次に、パッケージのファイルが/usr/local/stow/の下にインストールされるように、その手順を変更する。具体的な変更方法は次の通り。makeを使ってインストールする場合は、Makefileを開いて、インストール先のディレクトリ名(通常/usr/local)を含む変数を探し、その値を/usr/local/stow/package_name-release_number/に変更する。makeを使わず、ソース・ディレクトリに用意されている独自のスクリプト(例えば、./install)を使ってインストールする場合は、そのスクリプト中のインストール先ディレクトリ名を含む変数を変更する。

 パッケージにインストーラーが付属していない場合は、/usr/local/stow/package_name-release_number/というディレクトリを作り、パッケージのファイルをそのディレクトリに自分の手でコピーする。

 ごく少数だが、CONSSConsなどの特殊なインストーラーを使っているパッケージもある。しかし、大概のインストーラーは、makeと同じように、パッケージのソース・ディレクトリの最上位レベルに動作を指示する制御ファイルがあり、これを読み込んで動くように作られているものだ。前記の2種もそうなっている。従って、そうしたパッケージをStowでインストールするときは、インストーラーのマニュアルを見て制御ファイルがいずれであるかを調べ、テキストエディタでそのファイルを開き、インストール先ディレクトリ名を含む変数を変更すればよい。

パッケージの削除方法

 Stowを使わなくても、コンパイルを要するパッケージを削除することはできる。例えば、一部のパッケージでは、Makefileにオプション「make uninstall」が記述されており、「make install」でインストールしたファイルの全部または一部を削除できるようになっている。ただし、次のような欠点がある。すなわち、一部のファイルが削除されずに残ることがあり、ディレクトリについてはおおかたは削除されず、ソースパッケージは必ず残しておかなければならない。これに対して、Stowはパッケージが作成したファイルとディレクトリを完全に削除でき、ソースパッケージも不要だ。

 削除に備えて、専用のディレクトリにインストールすることもできる。しかし、その場合、例えばVimを/opt/vim/にインストールしたとすると、Vimを使うには/opt/vim/bin/vimと入力しなければならない。これに対して、Stowは実行形式を/usr/local/bin/にインストールするので、名前を入力するだけで実行可能だ。

 ほかのインストールユーティリティー、例えばCheckInstallもある。これは使いやすいが、すべてのソースパッケージに使えるわけではない。これに対して、Stowは使いやすく、しかもすべてのソースパッケージに対して使うことができる。


関連キーワード

Linux | GNU | 運用管理 | Leverage OSS | オープンソース


       1|2 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

Loading

ピックアップコンテンツ

- PR -

注目のテーマ