Mac High Sierra上的vim ruby​​不匹配

use*_*993 29 ruby macos vim macos-high-sierra

我最近将Mac升级为High Sierra

升级后,Macvim(mvim)停止工作,因为(我假设)HighSierra将ruby升级到2.3,而mvim正在使用ruby 2.0.

以下是我得到的错误

dyld:未加载库:/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib

参考自: /usr/local/Cellar/macvim/8.0-134/MacVim.app/Contents/bin/../MacOS/Vim

我是否需要再次编译vim或者有什么方法可以解决这个问题?

提前致谢.

Bru*_*dge 29

这对我有用.因人而异 brew uninstall --purge macvim brew install macvim

[修改]关于upgrade单独选项,如果您还没有当前版本,那么可能会有效.该--purge部队去除和完整的重新安装.此外,该build from source选项虽然可能有效,但您现在拥有自己的mac-vim静态快照,并且需要在应用程序发展时手动维护它.除非你有非常具体的需求,否则我会避免从源代码构建.

  • 在brew的git源的整个历史中,我找不到提及--purge选项的地方。你是说“-力”吗? (3认同)
  • 这也适用于`vim`,如果一个人不使用`macvim`. (2认同)

小智 13

首先找到正确的libruby路径,我的是: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib

版本已经改变,这是很常见的.

找出vim的绝对路径在哪里:

$ which vim
vim: aliased to your-path-of-vim
Run Code Online (Sandbox Code Playgroud)

改变dyld:

sudo install_name_tool -change /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib your-path-of-vim
Run Code Online (Sandbox Code Playgroud)

  • 这有点微不足道.而不是使用`哪个vim`,使用错误指示的路径.就我而言,它是`/usr/local/Cellar/macvim/8.1-151/MacVim.app/Contents/bin /../ MacOS/Vim` (3认同)

heq*_*128 12

?  ~ vim
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我试过brew卸载安装更新...全部失败了.并install_name_tool为我工作.

install_name_tool -change /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib /usr/local/bin/vim
Run Code Online (Sandbox Code Playgroud)

  • 尝试后,我收到此错误:错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool:输入文件:/usr/local/Cellar/macvim/8.0-143/MacVim .app/Contents/bin/mvim不是Mach-O文件 (3认同)
  • 这对我有用,但它的二进制位置略有不同.`install_name_tool -change /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby .2.3.0.dylib/usr/local/Cellar/macvim/8.1-151/MacVim.app/Contents/MacOS/MacVim`和`install_name_tool -change /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr /lib/libruby.2.0.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib /usr/local/Cellar/macvim/8.1-151/MacVim .应用程序/内容/ MacOS的/ Vim` (3认同)
  • 需要注意的重要一点是,应将/ usr / local / bin / vim替换为引用文件中的任何错误。就我而言,它是`/usr/local/Cellar/macvim/8.1-151/MacVim.app/Contents/bin /../ MacOS / Vim` (2认同)

Gui*_*ido 7

这对我有用:

$ brew update

$ brew upgrade macvim
Run Code Online (Sandbox Code Playgroud)

实际命令输出:

[bin]$ brew upgrade macvim
==> Upgrading 1 outdated package, with result:
macvim 8.0-142
==> Upgrading macvim --with-override-system-vim
==> Downloading https://github.com/macvim-dev/macvim/archive/snapshot-142.tar.gz
==> Downloading from https://codeload.github.com/macvim-dev/macvim/tar.gz/snapshot-142
######################################################################## 100,0%
==> ./configure --with-features=huge --enable-multibyte --with-macarchs=x86_64 --enable-perlinterp --enable-rubyinterp --enable-tclinterp --enable-ter
==> make
  /usr/local/Cellar/macvim/8.0-142: 2,147 files, 34.2MB, built in 3 minutes 15 seconds
[bin]$ 
Run Code Online (Sandbox Code Playgroud)