使用MacPorts在Mac OS X 10.5上安装PostgreSQL时出错

时间:2009-02-24 16:27:20

标签: macos postgresql macports

我已经在几台不同的计算机上使用MacPorts安装了PostgreSQL,没问题,但是当涉及到我自己的笔记本电脑时,我无法让它构建。

当我执行此命令时:

sudo port install postgresql83

我收到此错误:

checking test program... failed
configure: error:
Could not execute a simple test program.  This may be a problem
related to locating shared libraries.  Check the file 'config.log'
for the exact reason.

Error: The following dependencies failed to build: postgresql83
Error: Status 1 encountered during processing.

config.log文件长7000行,没有明显的问题我可以看到(尽管在最后一行显示“退出1”!)。

我有开发人员工具和未安装的内容,我已更新到最新版本的MacPorts并同步我的端口树。我可以通过MacPorts安装其他东西。

我用谷歌搜索了这意味着什么的详细信息。有什么建议?谢谢!

更新:我认为这是导致它失败的原因(来自config.log):

configure:8307: ./conftest
dyld: Library not loaded: /opt/local/lib/libxml2.2
  Referenced from: /opt/local/lib/libxslt.1.dylib
  Reason: image not found

我安装了libxml2,但也许它搞砸了。我卸载了libxml2和libxslt并重新安装它们,所以我们会看到会发生什么。

3 个答案:

答案 0 :(得分:2)

这是关键:

configure:8307: ./conftest
dyld: Library not loaded: /opt/local/lib/libxml2.2
  Referenced from: /opt/local/lib/libxslt.1.dylib
  Reason: image not found

这不在config.log的底部附近,它大约在700行。

尽管我已经将libxml升级到了相应的版本(这是我之前在安装postgresql时必须解决的一个问题),但它无法使用libxslt。

我卸载了libxml(我安装的两个版本)和libxslt,然后再次安装了postgresql,这次它能够构建。

如果您收到类似构建postgresql的错误,请查看库。

BTW,config.log文件可以在以下位置找到:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_postgresql83/work/postgresql-8.3.6/config.log

答案 1 :(得分:0)

postgresql83在MacPorts中的版本为8.3.6。这与您的副本使用的版本相同吗? “端口信息postgresql83”如果它们不同,请执行“sudo port selfupdate&& sudo port upgrade -u outdated&& sudo port clean postgresql83”以使所有内容保持最新状态,然后重试。

从我所看到的,postgresql83应该依赖于libxml2,而不是libxml。这应该已经由MacPorts处理。您可能希望以任一方式执行上述命令(确保更新依赖项并清理目录以再次尝试)。

答案 2 :(得分:0)

我意识到这是一个无法解决问题的答案,但作为一个不是mac端口粉丝的mac用户,我找到了安装postgres的另一个解决方案。而且很久以前,postgres网站downloads section开始宣传EnterpriseDB's one-click installer

我过去曾尝试通过mac端口安装它,最终决定从源手动安装它,这很痛苦。这个安装程序非常好。它将可执行文件放在适当的地方,将其库放在/ Library中,甚至包括一些额外的程序来帮助处理postgres。试一试,当有一个优质的安装程序时,没有必要用一个片状mac端口安装你的头发。