brew upgrade 破坏了 OS X 上的 Vim(dyld:库未加载)

Mat*_*ski 80 vim ruby homebrew libraries macos

brew update && brew upgrade好久没跑了。

我刚刚做了一个大规模的升级,结果破坏了我的 Vim。

这是我运行后得到的vim

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)

我遇到过一些网站,但没有一个真正有用。

他们说这可能与rvmbrew uninstall vim; rvm system; brew install vim没有帮助。我也尝试重新安装 MacVim,但没有解决问题。

添加export PATH="/usr/local/bin:$PATH"到我的.bash_profile也没有帮助。

以下是供将来参考的列表:

我的 Vim 怎么了?我该如何解决?

ken*_*orb 86

解决方案

尝试重新安装rubyvim,如

brew reinstall ruby vim
Run Code Online (Sandbox Code Playgroud)

故障排除

如果以上没有帮助,这里有其他建议:

  • 查找任何引用DYLD_LIBRARY_PATHDYLD_FALLBACK_LIBRARY_PATHDYLD_FRAMEWORK_PATH环境变量,并从启动shell脚本(如删除它们~/.bashrc~/.bash_profile等)。

  • 升级到 high sierra 后,我运行了 `brew update` 和 `brew upgrade`,这将很多软件升级到了 high sierra 版本并解决了我的问题。 (7认同)
  • 刚刚升级到高山脉,这就成功了!谢谢。 (3认同)

Mat*_*ski 32

tl;博士

brew link --overwrite ruby
Run Code Online (Sandbox Code Playgroud)

细节

事实上,结果很简单。我按照建议运行brew doctor并得到以下结果:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
    ruby
Run Code Online (Sandbox Code Playgroud)

所以我跑了brew link ruby。这是我得到的:

Linking /usr/local/Cellar/ruby/2.3.1... v
Error: Could not symlink bin/rake
Target /usr/local/bin/rake
already exists. You may want to remove it:
  rm '/usr/local/bin/rake'
Run Code Online (Sandbox Code Playgroud)

结果我决定运行brew link --overwrite ruby,现在我的 Vim 又开始工作了!

  • 该死的“brew upgrade”对我来说很糟糕。非常感谢您提供一套明确的说明来解决这个问题。 (2认同)
  • 升级到 Catalina 后对我不起作用:`警告:拒绝链接 macOS 提供的软件:ruby` (2认同)

小智 9

brew upgrade在未加载 libperl 的情况下,我遇到了类似的错误。

dyld: Library not loaded: /usr/local/opt/perl/lib/perl5/5.24.1/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /usr/local/Cellar/vim/8.0.0636/bin/vim
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

修复是重新安装损坏的依赖项和 vim:

brew uninstall --ignore-dependencies perl
brew uninstall vim
brew install vim
Run Code Online (Sandbox Code Playgroud)