オープンソースに関する一般ユーザーの常識【導入編】Undocumented savvy(2/3 ページ)

» 2007年08月17日 08時00分 公開
[野首貴嗣,ITmedia]

インストールディレクトリの指定

Q インストールしたソフトウェアをいつでも消せるように、指定したディレクトリにインストールしたいと考えています。どうしたら良いでしょうか?

 configureスクリプトを実行する際に、「--prefix」オプションを指定することで、指定ディレクトリ以下にファイルをインストールできます。例えば、GNU hello*を/usr/local/hello以下にインストールしたい場合は、次のように実行します。

$ tar zxf hello-2.1.1.tar.gz

$ cd hello-2.1.1

$ ./configure--prefix=/usr/local/hello

$ make install


インストールファイルの記録

Q いつでも消せるように、インストールされるファイルを記録しておきたいと考えています。どうしたらよいでしょうか?

 InstallWatchというソフトウェアを利用するとよいでしょう。

 このソフトウェアは、コマンドの前に指定することでファイル操作を記録できるので、「make install」時に指定しておけば、そこで行われた内容が記録できるわけです。

installwatch -o <出力ファイル> make install


 例えば、<出力ファイル>としてoutputを指定した場合、実行例1のようになります。open、mkdir、chmodなどのファイルを扱うシステムコール*が記録されますが、もともとシステム上に存在しているファイル以外でopenに成功しているものが、新規にインストールされたファイルです。

実行例1 InstallWatchによる処理内容の記録


# installwatch -o output make install
# less output
        :
        :
3 open /dev/tty #success
3 open /dev/null #success
-1 mkdir /usr #File exists
-1 mkdir /usr/local #File exists
-1 mkdir /usr/local/hello #File exists
0 mkdir /usr/local/hello/bin #success
3 open /dev/tty #success
4 open /usr/local/hello/bin/hello #success
0 chmod /usr/local/hello/bin/hello 00600 #success
0 chown /usr/local/hello/bin/hello -1 -1 #success
0 chmod /usr/local/hello/bin/hello 00755 #success
3 open /dev/tty #success
3 open /dev/null #success
-1 mkdir /usr #File exists
-1 mkdir /usr/local #File exists
-1 mkdir /usr/local/hello #File exists
0 mkdir /usr/local/hello/man #success
0 mkdir /usr/local/hello/man/man1 #success
3 open /dev/tty #success
4 open /usr/local/hello/man/man1/hello.1 #success
0 chmod /usr/local/hello/man/man1/hello.1 00600 #success
0 chown /usr/local/hello/man/man1/hello.1 -1 -1 #success
0 chmod /usr/local/hello/man/man1/hello.1 00644 #success

実行例1 InstallWatchによる処理内容の記録

このページで出てきた専門用語

GNU hello

ソフトウェア開発を学習するために開発されたツール。GNU cording standarsと呼ばれる基準に従い、autoconf、automake、libtool、gettextなどを使って作成している。

システムコール

カーネルが提供する機能のうち、プロセスから呼び出せるようになっているもの。


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ