Ошибка при сборке пакета apache во FreeBSD
На моем сервере под управлением FreeBSD 8.0-RELEASE работал веб-сервер apache-2.0.60. Недавно решил обновить его до последней версии apache-2.0.63_15 из портов. При отрабатывании команды make выводилась ошибка компиляции и порт не собирался. Пришлось внимательнее читать бюллетень обновлений по пути /usr/ports/UPDATING. |
Ошибка была следующего вида:
... checking for APR... configure: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file. ===> Script "configure" failed unexpectedly. ...
В бюллетене по обновлениям в первой новости на дату 18 мая 2010 года написано буквально следующее:
…
20100518: КАСАЕТСЯ: пользователей пакетов devel/apr0, devel/apr1, www/apache20, www/apache22 АВТОР: pgollucci@FreeBSD.org порт devel/apr был переименован в devel/apr1. флаг WITH_APR_FROM_PORTS=yes для порта www/apache22 был опущен и может быть удален из ваших конфигурационных файлов; порт devel/apr1 теперь будет использоваться всегда. Пожалуйста вручную удалите порт apache-2.\*, если он установлен до обновления, используя либо portmaster или portupgrade: pkg_delete -f apache-2.\* Теперь, если вы используете portmaster сделайте: portmaster -o devel/apr1 devel/apr Если вы используете portupgrade: portupgrade -f -o devel/apr1 devel/apr Наконец, переустановите порт Apache, если вы его удалили ранее и обновите порты, как обычно (вместо ‘ХХ’ подставьте версию 20 или 22): portinstall www/apacheXX …
Осталось только сделать это на сервере. Удаляю установленный порт apache-2.0.60:
# cd /usr/ports/www/apache20 # make deinstall
Или же так:
# pkgdb -u ---> Updating the pkgdb # pkg_delete -f apache-2.\*
Я использую для обновления портов команду portupgrade. Делаю тогда следующее:
# portupgrade -f -o devel/apr1 devel/apr
Теперь осталось только установить порт apache-2.0.63. Я не использую в его работе SSL и исключаю на сервере поддержку IPv6:
# cd /usr/ports/www/apache20 # make WITHOUT_IPV6=YES WITHOUT_SSL=YES # make install clean
Теперь пакет без ошибок собрался и установился. (В процессе его установки могут потребоваться другие пакеты, от которых пакет Apache зависит, они поставятся автоматически. Выберите только необходимые вам их настройки, когда спросит инсталлятор). Нам осталось только перезапустить веб-сервер и проверить его логи на предмет возможных ошибок.
# /usr/local/etc/rc.d/apache2 restart Performing sanity check on apache2 configuration: Syntax OK Stopping apache2. Waiting for PIDS: 69199. Performing sanity check on apache2 configuration: Syntax OK Starting apache2. # netstat -tan | grep 80 tcp4 0 0 *.80 *.* LISTEN
В логах ошибок не обнаружено, цель (обновление пакета) достигнута.