我使用此命令从Mac卸载端口:
sudo port -fp uninstall installed
然后当我使用wget下载文件时,它会显示我:
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
Referenced from: /opt/local/bin/wget
Reason: Incompatible library version: wget requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
Trace/BPT trap: 5
怎么办?
※Mac OS X 10.7.5
当我跑步时
otool -L $(which wget)
它给了我
/opt/local/bin/wget:
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.19.0)
/opt/local/lib/libgnutls.26.dylib (compatibility version 49.0.0, current version 49.3.0)
/opt/local/lib/libtasn1.3.dylib (compatibility version 5.0.0, current version 5.13.0)
/opt/local/lib/libgcrypt.11.dylib (compatibility version 19.0.0, current version 19.0.0)
/opt/local/lib/libgpg-error.0.dylib (compatibility version 9.0.0, current version 9.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
/opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current version 18.8.0)
答案 0 :(得分:10)
显然,当您从MacPorts安装了wget
时,您在本地构建并安装了libiconv
的副本,因此它会动态链接到您现在已删除的库。如果要删除所有MacPorts痕迹,则需要重建wget
的副本。
否则,您可以使用MacPorts安装wget
的副本,该副本还会安装所有依赖项,例如libiconv
。
sudo port selfupdate
sudo port clean wget
sudo port install wget
或者,您可以使用Apple提供给操作系统X的wget
代替curl
。
更新:根据您的更新,您似乎正在使用安装了MacPorts的wget
。不知何故,你设法让依赖项不同步。 (为什么要使用port -fp uninstall installed
?)建议您现在尝试:
sudo port selfupdate # if not run recently
sudo port clean libiconv
sudo port upgrade --force libiconv
强制将libiconv
升级到当前版本。
更新[2014-12]:重新审视此问题,问题也可能是由于不完整的MacPorts端口文件未在wget
上注册libiconv
端口依赖项。我已经opened an issue了解它。 [...]并且MacPorts项目回答说,这可能是因为在升级到OS X的新版本时没有遵循MacPorts迁移说明;有一个MacPorts problem hotlist entry for libiconv
compatibilities here。
无论如何,可能有效的方法是从源代码重新安装wget
。
sudo port selfupdate
sudo port -f uninstall wget
sudo port -s install wget
如果这没有帮助,您可能需要阅读the migration instructions并确保在升级后重新安装了所有端口。