Mac OS X 中的库冲突

Mac OS X 中的库冲突

我尝试在 Mac OS X Snow Leopard 上安装 ImageMagick 库,首先我尝试港口失败之后,自制。它更新了一些依赖项并顺利安装了 ImageMagick。

到目前为止一切顺利。问题出现在我运行 Apache 时。我在系统日志中收到以下错误:

07/04/11 12:55:15   org.apache.httpd[41841] httpd: Syntax error on line 115 of /private/etc/apache2/httpd.conf: Cannot load /opt/local/apache2/modules/libphp5.so into server: dlopen(/opt/local/apache2/modules/libphp5.so, 10): Library not loaded: /opt/local/lib/libpng12.0.dylib\n  Referenced from: /opt/local/apache2/modules/libphp5.so\n  Reason: image not found

我检查了 /opt/local/lib,结果很惊讶!我没有 libpng12.0,但是有 libpng14.0。

因此,据我所知,安装 ImageMagick 库时出现了问题。

现在,除了从备份中复制它们之外,我找不到回滚到以前的库的方法。你知道是否有办法恢复以前的状态或重新安装 Apache 吗?或者这只是一个损坏的状态,我必须重新安装 OS X?

答案1

(改编自我的评论,因为它似乎对提问者有帮助。)

错误中提到了一些 MacPorts 文件,但没有提到 Homebrew 文件,也没有提到 ImageMagick 文件。

您的 Apache 2 配置正在尝试加载 MacPorts 中内置的 PHP 5 模块。问题在于该模块最初是针对旧版本的 libpng(也在 MacPorts 中)构建的。新版本的 libpng 可能来自您通过 MacPorts 安装 ImageMagick 的失败尝试(libpng 是 ImageMagic 的依赖项,显然也是 PHP 5 模块的依赖项)。

如果您想要过渡到 Homebrew(远离 MacPorts),那么您可能需要通过 Homebrew 构建 PHP 5 Apache 2 模块,并更新您的 Apache 2 配置以使用该模块,而不是 MacPorts 中的模块。您可能还想卸载 MacPorts如果您不将其用于其他任何用途。

或者,如果您只是想让事情再次运转,您可以尝试升级 MacPorts 中的 PHP 5 模块。sudo port upgrade php5可能会奏效。

相关内容