安装Homebrew时出现“库未加载错误(libidn.11.dylib)”

4
尝试在Lion上安装Homebrew。当我执行以下操作时:
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)" 

I get this error:

dyld: Library not loaded: /opt/local/lib/libidn.11.dylib
Referenced from: /usr/local/bin/curl
Reason: image not found

我之前安装了MacPorts,但是现在已经卸载并彻底删除了/opt/local文件夹,同时也从我的PATH环境变量中删除了它。
你知道为什么会出现这个错误吗?
6个回答

8
您将curl构建并安装到/usr/local/bin,但它链接到您使用MacPorts安装的libidn。您应该删除/usr/local/bin/curl。您可能还需要仔细检查/usr/local/bin中的其他所有内容,以查看它们是否存在相同的问题。
如果有必要的话,您还需要检查/usr/local/lib中的东西,以防它们也链接到了MacPorts安装的库。例如,curl可能会有一个/usr/local/lib/libcurl.dylib,它可能会链接到/opt/local/lib中的一些东西。

有没有简单的方法来检查是否还有其他东西链接到了MacPorts库? - Callmeed
2
@Callmeed:你可以使用otool -L path来查看path链接到了哪些库。如果你检查otool -L /usr/local/bin/curl,它应该会显示它链接到了/opt/local/lib中的某些东西。 - Lily Ballard
如果有修复方法的话,是的,请提供。我遇到了类似的问题,我通过删除文件夹来移除一个库,现在ffmpeg报错了。 - nycynik

4
对我来说,运行brew install libidn就解决了问题。

2
brew reinstall libidn2 对我很有帮助(第二个版本)。 - tapforter

2
尝试运行$ brew reinstall curl命令,重新安装curl依赖。"Original Answer"翻译成"最初的回答"。

1
我通过运行解决了这个问题。
brew upgrade

也对我有用,谢谢! - undefined

0
cd /usr/local/opt/libidn2/lib/
ln -s libidn2.4.dylib libidn2.0.dylib

-7
以下代码解决了我的特定问题:
rm -f /usr/local/bin/curl
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

如果您已经安装了旧版的homebrew:

rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup

储存任何未被酿造的文件:

cd /usr/local/Library && git stash && git clean -f

brew doctor:

http://connect.apple.com安装Xcode CLI工具。


4
希望你之前能够发布一个警告,说明这将会删除你在Homebrew下安装的所有内容 :( - Anony372
5
在网上找到一条shell命令时,务必要保持谨慎。特别是如果它包含 rm 命令。请注意不改变原意,让内容更加通俗易懂。 - campeterson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接