既にほぼローカルネット専用化している自宅サーバの話である。
自宅サーバでは、Apache-2.2.14_6 を使っている。
FreeBSDのportsを更新したら、Apache-2.2.15_9が公開されていたので、さっそく、導入することにした。
portupgradeで更新しようとしたところ、skipされてしまった。
/usr/ports/UPDATINGには、次のような記述があった。
20100518:
AFFECTS: users of devel/apr0, devel/apr1, www/apache20, www/apache22
AUTHOR: pgollucci@FreeBSD.orgdevel/apr port has been renamed to devel/apr1.
WITH_APR_FROM_PORTS=yes for www/apache22 has been dissolved and may be
removed from your configuration files; devel/apr1 is always used now.Please manually delete apache-2.\* if installed _before_ updating using
either portmaster or portupgrade:pkg_delete -f apache-2.\*
Then, if you use portmaster:
portmaster -o devel/apr1 devel/apr
If you use portupgrade:
portupgrade -f -o devel/apr1 devel/apr
Finally, reinstall Apache port if you deleted it earlier and update ports as
usual (`XX' below is either 20 or 22):portinstall www/apacheXX
aprモジュールは、Apache22のオプションで、「THREADS」を選択すると使われるものだ。
御指示どおりの手順でやってみた。
# pkg_delete -f apache-2.\*
# portupgrade -f -o devel/apr1 devel/apr
# portinstall www/apache22
すると、またもやエラーが発生した。
===> Script "configure" failed unexpectedly.
Please report the problem to apache@FreeBSD.org [maintainer] and attach the
"/usr/ports/www/apache22/work/httpd-2.2.15/config.log" including the output
of the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. an `ls
/var/db/pkg`).
*** Error code 1Stop in /usr/ports/www/apache22.
*** Error code 1Stop in /usr/ports/www/apache22.
おかしい。
ああ、そういえば、mod-perl2を使っていた。
そこで、次のように、依存関係を遮断した。
# pkgdb -F
---> Checking the package registry database
Stale dependency: mod_perl2-2.0.4_2,3 -> apache-2.2.14_6 (www/apache22):
-> Deleted. (irrelevant)
しかし、導入しようとしても、またしてもエラーが発生。
Configuring Apache Portable Runtime library ...checking for APR... configure: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.
===> Script "configure" failed unexpectedly.
Please report the problem to apache@FreeBSD.org [maintainer] and attach the
"/usr/ports/www/apache22/work/httpd-2.2.15/config.log" including the output
of the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. an `ls
/var/db/pkg`).
*** Error code 1Stop in /usr/ports/www/apache22.
*** Error code 1Stop in /usr/ports/www/apache22.
とりあえず、THREADSのチェックをOffにして再試行したが、同じエラーで停止。
# cd /usr/ports/devel/apr1/
# make configure
としたら、ビルドオプションの「THREADS」と「IPV6」がOnになっている。
ここが不整合だったかもしれない。
apr1のビルドオプション「THREADS」と「IPV6」をOffに設定。
その後、apache22のディレクトリに戻って再試行するも、同じエラー。
???
ひょっとして、devel/apr1を再導入しないとだめなのだろうか。
# cd /usr/ports/devel/apr1/
# setenv FORCE_PKG_REGISTER
# make clean
# make deinstall
# make install
これでもダメ。
# portupgrade -f devel/apr1なんとか正常終了。
# portinstall www/apache22これもなんとか正常終了。
# portupgrade -f mod_perl2これも正常終了。
# /usr/local/etc/rc.d/apache22 start Performing sanity check on apache22 configuration: Syntax OK Starting apache22.
やれやれ、やっと起動した。
まとめると、こんな感じだろう。
- portsの旧devel/aprがdevel/apr1に改称された。
- portupgrade -f -o devel/apr1 devel/aprでは、どうやらデフォルト設定(IPV6オン)で強制導入される。
- 筆者のサーバではIPV6オフ(以前の記事参照)にしているので、apache2とapr1の設定が不整合となった。
- apr1のconfigureを再設定した後、portupgrade -f apr1で再導入することにより、不整合が解消した。
なんともヤヤコシイものである。







コメントする