我运行一个FreeBSD(6.3-STABLE)生产服务器,通过端口安装apache13。 由于各种原因,我需要升级到apache22,最好还通过端口安装。 由于我的维护窗口非常短,我考虑将apache22安装到apache13并进行configuration和testing(端口:81左右),然后在维护期间切换。 (当然,备份存在)。
事情是,apache22端口设置为与apache13冲突,我无法find一种方法来覆盖这一点。
[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
同样的原因,使用-DFORCE_PKG_REGISTER在/ usr / ports / www / apache22目录中执行“make install”也会失败。
任何想法如何解决这个问题?
我很蠢。 我总是更关心/ usr / local / etc / apache *中的configuration文件,但从来没有想过二进制文件(即httpd和apachectl)。 那些当然会最终在同一个地方,这是港口的Makefile中的CONFLICT。
在serverfault之外提供的一个解决scheme是使用jail,在那里testingapache22configuration,然后在实时系统上进行切换。 这似乎是要走的路。
你也可以指定PREFIX在不同的目录下安装apache,比如/ usr / local / apache22。
make PREFIX=/usr/local/apache2