Я использую производственный сервер FreeBSD (6.3-STABLE) с установленным через порты apache13. По разным причинам мне нужно обновить его до apache22, предпочтительно также устанавливаемого через порты. Поскольку у меня очень короткий период обслуживания, я подумал об установке apache22 параллельно с apache13, его настройке и тестировании (на порту: 81 или около того), а затем просто переключиться во время обслуживания. (Бэкапы, конечно, есть).
Дело в том, что порт apache22 настроен на конфликт с apache13, и я не могу найти способ отменить это.
[root@desearth ~]# portupgrade -fNW www/apache22
...
===> Installing for apache-2.2.13
===> apache-2.2.13 conflicts with installed package(s):
apache-1.3.34_4
apr-db42-1.2.8_2
Также выполнение «make install» в каталоге / usr / ports / www / apache22 с параметром -DFORCE_PKG_REGISTER не работает по той же причине.
Есть идеи, как обойти это?
Я глупый. Меня всегда больше беспокоили файлы конфигурации в / usr / local / etc / apache *, но никогда не думал о двоичных файлах (например, httpd и apachectl). Конечно, они окажутся в одном и том же месте, для чего и предназначен CONFLICT в Makefile портов.
Одно из решений, предложенных мне вне serverfault, заключалось в использовании тюрьмы, тестировании конфигурации apache22 и последующем переключении на действующей системе. Кажется, это правильный путь.
Вы также можете указать PREFIX для установки apache в другой каталог, например / usr / local / apache22, например:
make PREFIX=/usr/local/apache2