我已经在几台不同的计算机上使用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并重新安装它们,所以我们会看到会发生什么。
答案 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端口安装你的头发。