MacOS下LuaRocks搜索Manifest失败及wget依赖库异常排查
解决MacOS上Luarocks安装Luacheck失败+Wget依赖旧版本libunistring问题
问题根源
Luarocks安装时的Manifest下载失败,本质是Wget依赖的动态链接库版本不匹配:Wget二进制文件仍引用旧版libunistring.2.dylib,但通过Brew安装的已是新版libunistring.5.dylib,导致Wget无法正常工作,进而影响Luarocks的文件下载流程。
解决步骤
1. 验证Wget的依赖引用
先确认Wget确实在调用旧版本库:
otool -L $(which wget)
输出中会看到类似行:
/usr/local/opt/libunistring/lib/libunistring.2.dylib (compatibility version 2.0.0, current version 2.0.0)
2. 修复Wget的动态链接库引用
用install_name_tool修改Wget的依赖路径,指向已安装的新版库:
# 获取libunistring的安装前缀 LIBUNISTRING_PREFIX=$(brew --prefix libunistring) # 修改Wget的依赖引用 sudo install_name_tool -change "${LIBUNISTRING_PREFIX}/lib/libunistring.2.dylib" "${LIBUNISTRING_PREFIX}/lib/libunistring.5.dylib" $(which wget)
3. 验证修复效果
执行以下命令确认Wget恢复正常:
wget --version
若不再提示缺失库文件,说明修复成功。
4. 重新安装Luacheck
现在Wget可正常工作,重新执行Luarocks安装命令:
luarocks install luacheck
备选方案(若上述方法无效)
如果修改动态链接仍无效,彻底重装相关依赖:
# 强制卸载libunistring brew uninstall --force libunistring # 重装libunistring和Wget brew install libunistring brew reinstall wget
完成后再执行luarocks install luacheck。
内容的提问来源于stack exchange,提问作者Maxime Franchot
相关产品推荐
相关产品推荐

