古い redhat linux で php configure error
keywords: expr error on php installation
■背景
上記で、「古い」と書きましたが、「古い」の定義は、
expr –– hello
の結果が
syntax error
となるか否か、で規定されるようです(と見做してよ
いようです)。しかし今回、その原因等々詳細な背景
については全く検証しておりません。従って、本項あ
くまでも対症です。
■error
php の configure 先頭近辺で下記の error message
が呈示されます。
unchor@rescue:/usr/local/src/apache/php-4.4.9# ./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--with-gd \
--with-zlib \
--with-pgsql
creating cache ./config.cache
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
expr: syntax error
■reference web site
下記
http://bugs.php.net/bug.php?id=39835
http://www.mail-archive.com/php-bugs@lists.php.net/msg102431.html
に、同じような症状でお困りの先達の記録があり、末
尾に解法が書かれております。
□expr check
上記 web site では
# expr --version | head -1
expr (GNU sh-utils) 2.0
# expr -- hello
expr: syntax error
なので、expr が原因では、と書かれているのですが、
手許の redhat linux では、
7.0J: expr: syntax error
7.3: expr: syntax error
と、何れも expr syntax error となりました。
また、error message の量(行数)は異なるのですが、
何れの環境でも php configure 時に
checking for a sed that does not truncate output... /bin/sed
expr: syntax error
./configure: test: =: unary operator expected
の error message を確認することができます(多分
無視しても compile 通るような気もしますが....)。
■対処
原因は兎も角、対処可能ですので対処しました。問題
の file は、
acinclude.m4のようです。grep で
aclocal.m4 (念のため)
configure
"expr --"
が混入していないか、調べた結果です。
修正は下記の通り。これで、configure が通りました。
unchor@rescue:/usr/local/src/apache# diff -u ./php-4.4.9/acinclude.m4 acinclude.m4
--- ./php-4.4.9/acinclude.m4 Sun Mar 25 19:22:37 2007
+++ acinclude.m4 Tue Feb 2 09:35:55 2010
@@ -569,20 +569,20 @@
done
echo "'[$]0' \\" >> $1
- if test `expr -- [$]0 : "'.*"` = 0; then
+ if test `expr " [$]0" : " '.*"` = 0; then
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '[$]0'"
else
CONFIGURE_COMMAND="$CONFIGURE_COMMAND [$]0"
fi
for arg in $ac_configure_args; do
- if test `expr -- $arg : "'.*"` = 0; then
- if test `expr -- $arg : "--.*"` = 0; then
+ if test `expr " $arg" : " '.*"` = 0; then
+ if test `expr " $arg" : " --.*"` = 0; then
break;
fi
echo "'[$]arg' \\" >> $1
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '[$]arg'"
else
- if test `expr -- $arg : "'--.*"` = 0; then
+ if test `expr " $arg" : " '--.*"` = 0; then
break;
fi
echo "[$]arg \\" >> $1
unchor@rescue:/usr/local/src/apache# diff -u ./php-4.4.9/aclocal.m4 aclocal.m4
--- ./php-4.4.9/aclocal.m4 Wed Aug 6 17:36:39 2008
+++ aclocal.m4 Tue Feb 2 09:45:14 2010
@@ -569,20 +569,20 @@
done
echo "'[$]0' \\" >> $1
- if test `expr -- [$]0 : "'.*"` = 0; then
+ if test `expr " [$]0" : " '.*"` = 0; then
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '[$]0'"
else
CONFIGURE_COMMAND="$CONFIGURE_COMMAND [$]0"
fi
for arg in $ac_configure_args; do
- if test `expr -- $arg : "'.*"` = 0; then
- if test `expr -- $arg : "--.*"` = 0; then
+ if test `expr " $arg" : " '.*"` = 0; then
+ if test `expr " $arg" : " --.*"` = 0; then
break;
fi
echo "'[$]arg' \\" >> $1
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '[$]arg'"
else
- if test `expr -- $arg : "'--.*"` = 0; then
+ if test `expr " $arg" : " '--.*"` = 0; then
break;
fi
echo "[$]arg \\" >> $1
unchor@rescue:/usr/local/src/apache# diff -u ./php-4.4.9/configure configure
--- ./php-4.4.9/configure Wed Aug 6 17:36:41 2008
+++ configure Tue Feb 2 09:49:18 2010
@@ -1725,20 +1725,20 @@
done
echo "'$0' \\" >> config.nice
- if test `expr -- $0 : "'.*"` = 0; then
+ if test `expr " $0" : " '.*"` = 0; then
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$0'"
else
CONFIGURE_COMMAND="$CONFIGURE_COMMAND $0"
fi
for arg in $ac_configure_args; do
- if test `expr -- $arg : "'.*"` = 0; then
- if test `expr -- $arg : "--.*"` = 0; then
+ if test `expr "$arg" : " '.*"` = 0; then
+ if test `expr "$arg" : " --.*"` = 0; then
break;
fi
echo "'$arg' \\" >> config.nice
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'"
else
- if test `expr -- $arg : "'--.*"` = 0; then
+ if test `expr "$arg" : " '--.*"` = 0; then
break;
fi
echo "$arg \\" >> config.nice