@kyanny's blog

My life. Opinions are my own.

Leopard に mod_perl-1.30 と apache-1.3.41 をインストール(続き)

Leopard に mod_perl-1.30 と apache-1.3.41 をインストール - 刺身☆ブーメランのはてなダイアリーの続き。

なぜ /etc/modperl などが作られてしまうのかがわかった。

apache では各種ファイルがインストールされるパスのレイアウトを config.layout ファイルによって OS やディストリビューションごとにいくつか用意している。参考: エンタープライズ:リファレンス - Apache 1.3

ここで、デフォルトでは --with-layout=Apache 相当になると書いてあるが、実は configure のなかで $PLATFORM という変数に OS の種別を入れて、その値によって --with-layout の値を(このオプションが指定されていなければ)推測して変えている。

この $PLATFORM というのは、配布物の src/helpers/GuessOS というプログラムの結果をみており、これを実行すると Mac OSX Leopard (10.5.4) では

apache_1.3.41 kyanny$ pwd
/Users/kyanny/tmp/apache_1.3.41
apache_1.3.41 kyanny$ src/helpers/GuessOS 
i386-apple-darwin9.4.0

となる。 -apple-dawrin の部分を configure がみて、 $PLATFORM の内容から --with-layout=Darwin を指定したのと同じことになる。

そして、 config.layout の セクションをみると、予想したとおり sysconfdir と localstatedir は /etc+ /var+ となっており、この + が --target オプションで指定したものに置き換えられるので(デフォルトでは httpd)、 --target=modperl としていると /etc/modperl 以下に conf ファイル類がインストールされ、 /var/modperl 以下にログファイル類がインストールされる。 Dawrin レイアウトでは prefix は /usr なので実行ファイルは本来 /usr/sbin/modperl などにできるはずだが、 --prefix だけ個別に指定しているのでこれが優先されて、 /usr/local/modperl/sbin/modperl などができてしまったようだ。

つまり、ごくごく普通にソースからインストールして /usr/local/modperl 以下に全部のファイルをまとめたい場合は、 --with-layout=Apache オプションを指定すればよい。

インストールする前にどこにインストールされるかを確かめたい場合は、 Makefile をみればよい。

Apacheハンドブック

Apacheハンドブック