Homebrew在升级VIM时出现错误

8

当我在macOS Sierra上运行brew upgrade时,操作失败了。它尝试升级的唯一东西是vim 8.0.0550。我已经尝试删除tar文件和强制重新下载升级,但没有帮助。这里是堆栈跟踪-如果需要,我可以附加更多日志:

ld: library not found for -lruby.2.4.0
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [vim] Error 1
make: *** [first] Error 2

编辑:发布后,github上出现了有关此错误的线程。撰写本文时,问题仍不完全清楚。


也有可能是您从未安装过macOS预安装的其他Ruby版本?因为当我使用Travis CI CLI接口时,我也遇到了类似的Ruby依赖问题。 - Marco N.
我已经安装了Ruby 2.4.0 - lruby是什么? - achalk
2
-lruby.2.4.0 是一个链接器标志 -l 和一个参数 ruby.2.4.0。它正在链接器路径中寻找 libruby.2.4.0.dylib。如果期望的是brew版本,则路径可能为 /usr/local/lib/libruby.2.4.0.dylib - Dan Lowe
3
你可能只是想在Brew中安装Ruby(这不会干扰你的RVM,因为它本身就设计成忽略其他Ruby版本)。这样编译器就能找到它期望的库了。 - Dan Lowe
1
谢谢@DanLowe,我从你提到的brew目录中建立了一个符号链接到库文件,问题得到了解决。 - achalk
显示剩余6条评论
2个回答

5
尝试这个:
  1. 运行brew doctor。这将在文本中显示以下条目:

    警告:你的Cellar中有未链接的kegs。 留下未链接的kegs可能会导致构建问题,并且在构建后那些依赖于这些kegs的brews无法正常运行。 在这些kegs上运行brew link

    ruby

  2. 要修复,请运行brew link --overwrite ruby

  3. 现在通过运行brew upgrade vim来升级vim。

我还建议修复其他报告的未链接kegs。

希望对您有所帮助。对我而言,它运作得非常好。


brew link --overwrite ruby 对我很有帮助(但在安装 Ruby 2.5.1 之前)。 - itsnikolay

2
我遇到了与我的 Mac OS Sierra 相同的问题,这是我找到这个问题的原因。我有 Brew 和 RVM,但是 Brew Vim 安装失败,并出现了上述问题中描述的链接器错误。尽管评论中建议使用 rbenv,但我不想去更改符号链接,因为我容易忘记并删除与之相关的原始文件。
解决方法是临时切换到 Mac 系统 Ruby 安装,使用以下命令:
rvm use system
然后升级 vim,完成安装后回到你想要使用 RVM 的 Ruby 版本即可。
这对我有效,但可能每个人的情况都不一样。

谢谢@Nikhil,我已经尝试过使用RVM,这对我也有效。我认为这是那些不想切换到rbenv的人最简单的解决方案。 - achalk

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