我用这个命令从Mac卸载端口:
sudo port -fp uninstall installed
Run Code Online (Sandbox Code Playgroud)
然后,当我使用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
Run Code Online (Sandbox Code Playgroud)
怎么做?
※Mac OS X 10.7.5
我跑的时候
otool -L $(which wget)
Run Code Online (Sandbox Code Playgroud)
它给了我
/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)
Run Code Online (Sandbox Code Playgroud)
Ned*_*ily 10
显然,wget当您libiconv从MacPorts安装时,您已构建并安装了本地副本,因此它会动态链接到您现在已删除的库.如果要删除所有MacPorts痕迹,则需要重建该副本wget.
否则,您可以安装wgetMacPorts 的副本,它也将安装所有依赖项,如libiconv.
sudo port selfupdate
sudo port clean wget
sudo port install wget
Run Code Online (Sandbox Code Playgroud)
或者,wget您可以使用curl哪些Apple提供OS X.
更新:根据您的更新,您似乎正在使用MacPorts安装wget.不知何故,你设法让依赖项不同步.(为什么要用port -fp uninstall installed?)建议你现在尝试:
sudo port selfupdate # if not run recently
sudo port clean libiconv
sudo port upgrade --force libiconv
Run Code Online (Sandbox Code Playgroud)
强制升级libiconv到当前版本.
更新[2014-12]:重新审视这个问题,问题也可能是由于不完整的MacPorts端口文件没有注册wget端口依赖libiconv.我已经开了一个关于它的问题.[...]并且MacPorts项目回答说,这可能是因为在升级到OS X的新版本时没有遵循MacPorts迁移说明; 这里有兼容性的MacPorts问题热门列表条目libiconv.
在任何情况下,可能有效的是wget从源重新安装.
sudo port selfupdate
sudo port -f uninstall wget
sudo port -s install wget
Run Code Online (Sandbox Code Playgroud)
如果这没有帮助,您可能需要阅读迁移说明,并确保在升级后重新安装了所有端口.
| 归档时间: |
|
| 查看次数: |
14042 次 |
| 最近记录: |