Новые опции при сборке apache22
Сегодня, при обновлении программного обеспечения на сервере под управлением FreeBSD 8.3-RELEASE, установленный web-сервер apache22 версии apache-2.2.22_6 захотел проапгрейдиться до версии apache22-2.2.22_7. В процессе выполнения обновления у меня выскочила ошибка… |
Само обновление системы я производил командой # portupgrade -v -a
. Когда дело дошло до apache, появилось окно выбора опций для его сборки. Т.к. делать изменения у меня необходимости не было, автоматом нажал ОК. Но тут выскочило предупреждение:
Config is invalid. Re-edit? [Y/N]
Тут я понял, что делаю что-то не так. Решил отложить обновление apache на попозже, нажав n
. После этого выскочила ошибка:
=> You must select one and only one option from the INET single Config is invalid. Re-edit? [Y/N] n => You must select one and only one option from the INET single *** Error code 1 Stop in /usr/ports/www/apache22. *** Error code 1 Stop in /usr/ports/www/apache22. ** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20120903-98172-19yqknz-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=apache-2.2.22_6 UPGRADE_PORT_VER=2.2.22_6 make ** Fix the problem and try again.
А после отработки, команда portupgrade выдала репорт:
! www/apache22 (apache-2.2.22_6) (unknown build error)
Как оказалось, в свежей версии apache разработчики включили новые опции, используемые при конфигурировании установки, позволяющие определить в каком адресном пространстве будет работать будущий web-сервер:
- IPV6 – S(INET): IPv6 support (включить в сборку поддержку IPv6 адресного пространства);
- IPV4_ONLY – S(INET): IPv4 only (использовать только IPv4 адресное пространство);
- IPV6_ONLY – S(INET): IPv6 only (использовать только IPv6 адресное пространство).
Поэтому было необходимо обязательно выбрать только одну из этих предложенных опций:
После такого выбора обновление apache22 прошло успешно, однако в системе оказалось зарегистрировано два порта, один из которых пришлось удалить:
# pkg_info | grep apache apache-2.2.22_6 Version 2.2.x of Apache web server with prefork MPM. apache22-2.2.22_7 Version 2.2.x of Apache web server with prefork MPM. # pkgdb -fF ---> Checking the package registry database [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 223 packages found (-0 +1) . done] Duplicated origin: www/apache22 - apache-2.2.22_6 apache22-2.2.22_7 Unregister any of them? [no] y Unregister apache-2.2.22_6 keeping the installed files intact? [no] y -> apache22-2.2.22_7 is kept. --> Saving the apache-2.2.22_6's +CONTENTS file as /var/db/pkg/apache22-2.2.22_7/+CONTENTS.apache-2.2.22_6 --> Unregistering apache-2.2.22_6 --> Done. [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 222 packages found (-1 +0) (...) done] ... Stale dependency: php5-zlib-5.4.6 -> apache-2.2.22_6 (www/apache22): Fixed. (-> apache22-2.2.22_7) Stale dependency: phpMyAdmin-3.5.2.2 -> apache-2.2.22_6 (www/apache22): Fixed. (-> apache22-2.2.22_7) # /usr/local/etc/rc.d/apache22 restart Performing sanity check on apache22 configuration: Syntax OK Stopping apache22. Waiting for PIDS: 53803. Performing sanity check on apache22 configuration: Syntax OK Starting apache22.
сделал make config добавив недостающую галочку, а потом еще раз portupgrade -a
и порт нормально перерегистрировался, не пришлось ничего удалять