История обновления одного порта во FreeBSD
Всем привет.
Сидел, занимался обновлением портов. Для обновления я использую утилиту portupgrade. Подошла очередь обновить apache. На команду portupgrade -r apache-2.2.22_5 получил в ответ следующее:
** Port marked as IGNORE: www/apache22:
is marked as broken: WITH/WITHOUT parameters are obsolete. The port use the new options NG framework. Please read http://wiki.freebsd.org/Ports/Options/OptionsNG
** Listing the failed packages (-:ignored / *:skipped / !:failed)
- www/apache22 (marked as IGNORE)
Ага, что-то нестандартное.
Полез читать предложенную ссылку. Изменился формат задания опций для компиляции. В старом варианте для apache22 в /etc/make.conf были заданы следующие опции:
less /etc/make.conf
# APACHE
.if ${.CURDIR} == ${PORTSDIR}/www/apache22
# Для запуска CGI-скриптов от gid и uid пользователя, а не WEB-сервера
WITH_SUEXEC=yes
# Где будет работать suexec (ещё будет в userdir)
SUEXEC_DOCROOT=/usr/www/sites/
# Пользовательские директории, в которых будет работать suexec
SUEXEC_USERDIR=/usr/www/sites/*/cgi-bin
SUEXEC_LOGFILE=/var/log/httpd/suexec.log
.endif
Для нового варианта исправил так:
less /etc/make.conf
apache22_SET+= SUEXEC
# Где будет работать suexec (ещё будет в userdir)
SUEXEC_DOCROOT=/usr/www/sites/
# Пользовательские директории, в которых будет работать suexec
SUEXEC_USERDIR=/usr/www/sites/*/cgi-bin
SUEXEC_LOGFILE=/var/log/httpd/suexec.log
Из той же ссылки надо дополнительно сделать следующее:
cd /usr/ports/www/apache22
make -VUNIQUENAME
После этого, обновляем
portupgrade -r apache-2.2.22_5
Потом проверяю:
/usr/local/sbin/suexec -V
-D AP_DOC_ROOT="/usr/www/sites/"
-D AP_GID_MIN=1000
-D AP_HTTPD_USER="www"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=1000
-D AP_USERDIR_SUFFIX="/usr/www/sites/*/cgi-bin"
Продолжение случаев обновлений с ошибками: