04 February
2010

古い 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
aclocal.m4 (念のため)
configure
のようです。grep で
  "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


Posted by unchor at 20:24 | Comments (0) | Trackbacks (0)
<< php の version を 4.4.2 以降に上げたら header 関数 warning が | Main | https の header を確認する >>
Comments
There are no comments.
Trackbacks
Please send trackback to:http://rescue.unchor.com/32/tbping
There are no trackbacks.
Post a comment