ttt

getttyent

(FreeBSD) ports/databases/pecl-memcache でエラー Canno

2010-11-15 22:18:13 | デジタル・インターネット

しばらく前から、portupgrade pecl-memcache-3.0.4_1 しても、こんなエラーが出てました。

# make
===>   pecl-memcache-3.0.5 depends on file: /usr/local/include/php/main/php.h - found
===>   pecl-memcache-3.0.5 depends on file: /usr/local/bin/phpize - found
===>   pecl-memcache-3.0.5 depends on file: /usr/local/lib/php/20060613/zlib.so - found
===>   pecl-memcache-3.0.5 depends on file: /usr/local/lib/php/20060613/session.so - found
===>   pecl-memcache-3.0.5 depends on file: /usr/local/bin/autoconf-2.68 - found
===>  PHPizing for pecl-memcache-3.0.5
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

*** Error code 1

しばらく待ってたらportsが修正されるのかな、と思ってたけど、いまだ直らず、ってことで、ネット検索して、すぐにわかりました。

「Cannot find autoconf. Please check your autoconf installation ~」というエラーは、/usr/local/bin/phpizeが出しているエラーだそうです。

/usr/local/bin/phpize を見てみると、すぐに場所がわかりました。

phpize_check_autotools()
{
  test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf-2.67
  test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader-2.67

  if test ! -x "$PHP_AUTOCONF" && test ! -x "`$php_shtool path $PHP_AUTOCONF`";
then
    cat <<EOF
Cannot find autoconf. Please check your autoconf installation and the
\$PHP_AUTOCONF environment variable. Then, rerun this script.

しかも、ああ、なるほど、コマンド名がべた書きしてあるじゃないですか。

PHP_AUTOCONF=autoconf-2.67

最近、portsのautoconfのバージョンが上がって、devel/autoconf268に変わってました。そして、pkgdb -Fしたとき、/usr/local/bin/autoconf-2.67を削除してました。だからphpizeでエラーが出たと。

というわけで、とりあえずの対処方法として、こんな風に、環境変数を設定してしまうのが良さそうです。

# setenv PHP_AUTOCONF /usr/local/bin/autoconf-2.68
# setenv PHP_AUTOHEADER /usr/local/bin/autoheader-2.68

それよりは、phpを再ビルドして、/usr/local/bin/phpizeを置き換えた方がよいかも?

20101115本文とはまったく関係ありません。また季節外れです。