pecl installでの「`phpize' failed」
CentOS4.5に2つのPHPをそれぞれ
- PHP5.2.3:/usr/local/lib/php5
- PHP4.4.7:/usr/local/lib/php4
にインストールした環境で、peclコマンドを使ってパッケージをインストールすると、
$ pecl install parsekit downloading parsekit-1.2.tgz ... Starting to download parsekit-1.2.tgz (14,979 bytes) .....done: 14,979 bytes 3 source files, building running: phpize Configuring for: PHP Api Version: 20020918 Zend Module Api No: 20020429 Zend Extension Api No: 20050606 ERROR: `phpize' failed $
といった具合にほぼ「phpizeでエラー」になります(PHP5、PHP4共に)。あ。PHPが1つの時はこの現象出ません。
で、peclコマンドを起点にちょっと追っかけてみると、$PEAR_DIR/PEAR/Builder.phpの455行目付近
<?php : $pp = popen("$command 2>&1", "r"); : if (is_resource($pp)) { $exitcode = pclose($pp); } else { :
にあるpclose関数で「-1」が返されていることが直接の原因のようです。
ちなみにこの「-1」自体はphpizeコマンドの戻り値ではなく、phpizeコマンドは正しく実行されて正常終了していました。となると、pclose関数でエラーが発生して「-1」を返しているっぽい。。。ということで、ext/standard/file.cを見てみると
: PHP_FUNCTION(pclose) { zval **arg1; php_stream *stream; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { WRONG_PARAM_COUNT; } PHP_STREAM_TO_ZVAL(stream, arg1); zend_list_delete(stream->rsrc_id); RETURN_LONG(FG(pclose_ret)); } :
うっ。ちゃんと追わないとダメか?。。。というところで時間切れ。
まあ、手動で問題なくインストールできるし、実質問題ないといえば問題ないんですが。。。何かイヤじゃありません?