brew升级在OS X上破坏了Vim(dyld:库未加载)


47

我已经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

我遇到过一些网站,但它们实际上都没有帮助。

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

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

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

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


现在,您可以尝试:xcode-select --install然后brew upgrade,按照“ 在常见问题上升级macOS”部分中的建议进行操作
逐渐变细

Answers:


48

尝试重新安装rubyvim,例如

brew reinstall ruby vim

故障排除

如果上述方法仍然无济于事,以下是其他建议:

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

3
刚升级到高山脉,就可以了!谢谢。
e_x_p

1
我遇到了mac vim的问题,所以我改用了它 brew reinstall ruby macvim,并像一种魅力一样工作:)
Crisoforo Gaspar

6
升级到高塞拉利昂后,我运行brew updatebrew upgrade,将许多软件升级到了高塞拉利昂版本,并解决了我的问题。
maffo

27

tl; dr

brew link --overwrite ruby

细节

实际上,事实证明这很简单。我按照建议运行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

所以我跑了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'

结果,我决定运行brew link --overwrite ruby,现在我的Vim再次正常工作!


2
该死的brew upgrade对我很废话。非常感谢您提供清晰的说明来解决此问题。
Sukima

7

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

解决方法是重新安装损坏的依赖项和vim:

brew uninstall --ignore-dependencies perl
brew uninstall vim
brew install vim

1
我的错误与op中的ruby库有关,但是尝试了一些链接修复后,我发现需要卸载/安装vim。我最近更新了红宝石。
杰罗姆'18 -4-18

我在github.com/Homebrew/brew/issues/2356#issuecomment-301830565上找到了相同的步骤,并且有效。
gabe

4

对我来说,我发现brew以某种方式安装了macvim,并且一直与OS stock vim冲突。尝试使用常规vim,并运行git命令,例如以下产生的错误:

$ git commit --amend
dyld: Library not loaded: /System/Library/Perl/5.16/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /usr/local/Cellar/macvim/7.4-73/MacVim.app/Contents/MacOS/Vim
  Reason: image not found
error: vi died of signal 6
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

因此,我继续卸载了brew已安装的所有与vim相关的软件包:

$ brew list

并确保通过$ brew uninstall macvim解决问题删除了macvim


这也是我的问题。好答案;谢谢!
旋转拨号

1

我尝试为ruby和vim重新安装,重新链接,删除所有可用版本等,但没有任何帮助。

因此,我决定将dylib文件从

/usr/local/opt/ruby/lib/libruby.2.3.dylib

/usr/local/opt/ruby/lib/libruby.2.3.0.dylib

重命名的结果是它现在可以正常工作了。


您可能要考虑在此处使用符号链接而不是重命名文件,以免引用libruby2.3.​​dylib的任何内容也不会损坏。
Derwent

0

如果收到如下消息:

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.4.1.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
error: vim died of signal 6
error: There was a problem with the editor 'vim'.
Please supply the message using either -m or -F option.

然后使用rvm管理Ruby,然后正确设置一个环境变量将使您的vim恢复工作。

请按照以下步骤查看它是否适用于您的环境:

是否定义了DYLD_LIBRARY_PATH,它是否正确?:

$ env|grep DYLD_LIBRARY_PATH

Ruby在哪里安装?

$ type ruby
ruby is hashed (/Users/<USER>/.rvm/rubies/ruby-2.4.1/bin/ruby)

这表明我的红宝石由rvm管理。

libruby.2.4.1.dylib在哪里?

find /Users/<USER>/.rvm/rubies/ruby-2.4.1  -name "*.dylib"

添加“ lib”目录,并将其附加到您的启动文件中:

echo -e "\nexport DYLD_LIBRARY_PATH=/Users/<USER>/.rvm/rubies/ruby-2.4.1/lib" >> ~/.bashrc

注意:请使用对您的工作站有意义的启动文件(〜/ .profile,〜/ bash_exports等)。

现在,当您开始一个新的终端会话时,您的vim应该会重新工作。


0

在我的情况下,事实证明安装了ruby,但是由于未链接的原因,所以:

酿造链接红宝石


0

我的错误(在自制软件更新后发生):

dyld:未加载库:/usr/local/opt/ruby/lib/libruby.2.6.dylib引用自:/ usr / local / bin / vim原因:找不到映像[1] 2800 abort vim

这花了我一个小时的时间。我的解决方案:

重新安装红宝石$ brew重新安装红宝石

来自Homebrew的反馈:

ruby仅限于桶,这意味着它没有符号链接到/ usr / local,因为macOS已经提供了该软件,并且并行安装另一个版本可能会引起各种麻烦。

如果您需要先在运行的PATH中使用ruby:echo'export PATH =“ / usr / local / opt / ruby​​ / bin:$ PATH”'>>〜/ .zshrc

为了使编译器找到红宝石,您可能需要设置:export LDFLAGS =“-L / usr / local / opt / ruby​​ / lib” export CPPFLAGS =“-I / usr / local / opt / ruby​​ / include”

为了使pkg-config查找红宝石,您可能需要设置:export PKG_CONFIG_PATH =“ / usr / local / opt / ruby​​ / lib / pkgconfig” ==>摘要🍺/usr/local/Cellar/ruby/2.6.3:19,372个文件,32.4MB错误:无法删除红宝石备份桶!手动执行以下操作:sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

我按照自制软件的说明手动移除了红宝石备份桶

$ sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1。重新安装

输入密码并尝试再次打开vim后

$ vim

Vim打开了,我微笑了一下,刷掉了沮丧的汗水。:)


-1

由于所有问题和安全问题,我停止使用Homebrew。

无论如何,我都从升级到OSX YosemiteOSX High Sierra而macvim停止在Terminal中工作。我得到了错误:

dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
  Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim
  Reason: image not found
Abort trap: 6

我尝试导出的路径类似于I3x的答案,但仍然出现相同的错误(是的,我打开了一个新的终端窗口)。

因此,我再次下载了macvim。当我被告知计算机上已经存在MacVim.app时,我停止了安装,并将名称更改为MacVim_original.app。然后,我继续安装新的macvim。之后,macvim再次在Terminal中工作。我使用快捷命令启动它:

$ m 1.py 

1
在进行“所有问题和安全问题”之类的声明时,请考虑包括其文档的链接。(=
ELLIOTTCABLE


呃。那请尽情享受吧。我只是在解释为什么您要这样做,这是Stack Exchange上的一种公认惯例(就像引用您的资料一样)。¯\_(ツ)_/¯
ELLIOTTCABLE

-1
brew uninstall --force ruby perl vim && brew install vim 

这对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.