Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

mod_sslのbuildで"ld:.libs/mod_ssl.ver:2: syntax error in VERSION script"

またやってしまった。。。

現象

httpd-2.2.29を--enable-sslを付けてbuildすると、mod_sslのbuild中に

/usr/bin/ld:.libs/mod_ssl.ver:2: ignoring invalid character `\033' in script

というエラーが発生し、buildに失敗する。

$ tar zxf httpd-2.2.29.tar.gz
$ cd httpd-2.2.29/
$ ./configure --enable-so \
--enable-ssl \
--enable-deflate \
--enable-rewrite \
--enable-mods-shared=most
$ make
    :
/usr/bin/ld:.libs/mod_ssl.ver:2: ignoring invalid character `\033' in script
/usr/bin/ld:.libs/mod_ssl.ver:2: ignoring invalid character `3' in script
/usr/bin/ld:.libs/mod_ssl.ver:2: ignoring invalid character `1' in script
/usr/bin/ld:.libs/mod_ssl.ver:2: ignoring invalid character `\033' in script
/usr/bin/ld:.libs/mod_ssl.ver:2: syntax error in VERSION script
collect2: ld returned 1 exit status
make[4]: *** [mod_ssl.la] Error 1
make[4]: Leaving directory `/usr/local/src/httpd-2.2.29/modules/ssl'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/usr/local/src/httpd-2.2.29/modules/ssl'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/httpd-2.2.29/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/httpd-2.2.29'
make: *** [all-recursive] Error 1
$ 

原因

grepコマンドの環境変数GREP_OPTIONSに"--color=always"を指定している。

対策

makeする際にGREP_OPTIONSをunsetする

$ unset GREP_OPTIONS

もしくは、"--color=auto"に変更

$ export GREP_OPTIONS='--color=auto'

して、再度make実行する。

おまけ

なぜ気づいたかと言うと、エラーメッセージの初っ端に

/usr/bin/ld:.libs/mod_ssl.ver:2: ignoring invalid character `\033' in script

とありますが、いかにもエスケープシーケンスっぽいコード。。。といっても、どこからこんなのが入り込んだ?
で、エラーメッセージに出力されている".libs/mod_ssl.ver"は

httpd-2.2.29/modules/ssl/.libs/mod_ssl.ver

なんですが、内容を表示させるとgrepしている訳でもないのに色付き文字が。。。あっ!!(吐血)