Ошибка при установке пакета, зависимого от autoconf
На сервере под управлением FreeBSD 8.0-RELEASE работает web-сервер apache-2.0.63, с прикрученным языком php5-5.3.3. При попытке установить дополнительный модуль для PHP5 – cURL, выпала ошибка следующего вида:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. |
Ошибка возникла на этапе выполнения команды make
и имела полностью вот такой вид:
[root@hostname /usr/ports/lang/php5-extensions]# make => php5-extensions-1.4 depends on file: /usr/local/include/php/main/php.h - found => php5-extensions-1.4 depends on file: /usr/local/lib/php/20090626/bz2.so - found => php5-extensions-1.4 depends on file: /usr/local/lib/php/20090626/ctype.so - found => php5-extensions-1.4 depends on file: /usr/local/lib/php/20090626/curl.so - not found => Verifying install for /usr/local/lib/php/20090626/curl.so in /usr/ports/ftp/php5-curl => php5-curl-5.3.3_2 depends on file: /usr/local/bin/phpize - found => php5-curl-5.3.3_2 depends on file: /usr/local/bin/autoconf-2.68 - found => php5-curl-5.3.3_2 depends on shared library: curl.6 - found ===> PHPizing for php5-curl-5.3.3_2 Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. *** Error code 1 Stop in /usr/ports/ftp/php5-curl. *** Error code 1 Stop in /usr/ports/lang/php5-extensions. *** Error code 1 Stop in /usr/ports/lang/php5-extensions. [root@hostname /usr/ports/lang/php5-extensions]#
Сперва нам необходимо убедиться, что в своей системе мы используем только одну версию autoconf (на момент написания статьи это была версия autoconf-2.68):
[root@hostname /usr/ports/lang/php5-extensions]# pkg_info | grep autoconf autoconf-2.68 Automatically configure source code on many Un*x platforms autoconf-wrapper-20071109 Wrapper script for GNU autoconf
А так же, что все симлинки корректны и ведут на autoconf нужной нам версии:
[root@hostname /usr/ports/lang/php5-extensions]# ls -Al /usr/local/bin | grep autoheader lrwxr-xr-x 1 root wheel 16 17 май 2010 autoheader -> autoconf-wrapper -r-xr-xr-x 1 root wheel 8632 24 ноя 14:27 autoheader-2.68 [root@hostname /usr/ports/lang/php5-extensions]# ls -Al /usr/local/bin | grep autoconf lrwxr-xr-x 1 root wheel 16 17 май 2010 autoconf -> autoconf-wrapper -r-xr-xr-x 1 root wheel 14665 24 ноя 14:27 autoconf-2.68 -r-xr-xr-x 1 root wheel 3318 17 май 2010 autoconf-wrapper lrwxr-xr-x 1 root wheel 16 17 май 2010 autoheader -> autoconf-wrapper lrwxr-xr-x 1 root wheel 16 17 май 2010 autom4te -> autoconf-wrapper lrwxr-xr-x 1 root wheel 16 17 май 2010 autoreconf -> autoconf-wrapper lrwxr-xr-x 1 root wheel 16 17 май 2010 autoscan -> autoconf-wrapper lrwxr-xr-x 1 root wheel 16 17 май 2010 autoupdates -> autoconf-wrapper lrwxr-xr-x 1 root wheel 16 17 май 2010 ifnames -> autoconf-wrapper
Нам осталось только объявить переменную $PHP_AUTOCONF. Я использую в качестве shell – bash. Выяснить, какую shell используете вы, можно командой:
[root@hostname /usr/ports/lang/php5-extensions]# pw usershow -u root root:*:0:0::0:0:Charlie &:/root:/usr/local/bin/bash
В моем случае, объявляем переменную таким образом:
[root@hostname /usr/ports/lang/php5-extensions]# export PHP_AUTOCONF=autoconf-2.68 [root@hostname /usr/ports/lang/php5-extensions]# export PHP_AUTOHEADER=autoheader-2.68
Если в качестве shell вы используете csh, данную переменную надо объявить так:
# setenv PHP_AUTOCONF autoconf-2.68 # setenv PHP_AUTOHEADER autoheader-2.68
Проверить корректное присвоение данных переменных вы можете командой:
[root@hostname /usr/ports/lang/php5-extensions]# set | grep PHP PHP_AUTOCONF=autoconf-2.68 PHP_AUTOHEADER=autoheader-2.68
Если у вас такой же вывод, то дальнейшая установка дополнительного модуля для PHP5 пройдет без проблем.