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

Posted

技术标签:

【中文标题】Mac High Sierra 上的 vim ruby​​ 不匹配【英文标题】:vim ruby mismatch on Mac High Sierra 【发布时间】:2018-04-26 23:14:58 【问题描述】:

我最近将我的 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 还是有什么办法可以解决这个问题?

提前致谢。

【问题讨论】:

您可以尝试将 dyld 更改为 Vim 二进制文件中的新版本 install_name_tool... 非常感谢。它解决了我的问题。 github.com/macvim-dev/macvim/issues/952 【参考方案1】:

这对我有用。 YMMV brew uninstall --purge macvim brew install macvim

[修正] 关于 upgrade 单独选项,如果您还没有当前版本,这可能会起作用。 --purge 强制删除并完全重新安装。 此外,build from source 选项虽然可能有效,但您现在拥有自己的 mac-vim 静态快照,并且需要随着应用程序的发展手动维护它。 除非您有非常特殊的需求,否则我会避免从源代码构建。

【讨论】:

也为我做了诀窍。按照其他帖子中的建议从 GUI 更新对我不起作用。谢谢,布鲁斯! 是的,这个也帮助了我!但是,我应该补充一点,在安装 vim 之前,我还必须至少运行一次 GUI Xcode 应用程序本身,因为它需要安装一些额外的组件。见:github.com/macvim-dev/macvim/issues/546 这也适用于vim,如果有人不使用macvim brew 的 git 源代码的整个历史中,我找不到提到 --purge 选项。你的意思是--force 嗯,是的,一定是。 (--force) 非常抱歉。 @skrat【参考方案2】:

尝试使用brew upgrade macvim 出现错误并失败。对我有用的是在普通窗口(不是 iTerm 或终端)中打开MacVim,图形版本注意到有更新的版本可用,并询问我是否要更新。单击yes, please 并完成。 macvim 在终端或 iTerm 中工作得很好(以及“窗口”版本)。

【讨论】:

【参考方案3】:

这对我有用:

$ brew update

$ brew upgrade macvim

实际命令输出:

[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]$ 

【讨论】:

【参考方案4】:

对我来说有帮助的是:

brew link --overwrite vim

在您的情况下,对 MacVim 使用相同的命令可能会很有用

brew link --overwrite macvim

【讨论】:

【参考方案5】:
➜  ~ 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

我试过 brew uninstall install update... 都失败了。 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

【讨论】:

我遇到了同样的情况,其他解决方案都不起作用,但是 install_name_tool 对我有用,谢谢! 尝试后,我得到这个错误:错误:/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 文件 这对我有用,但它是一个稍微不同的二进制位置。 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/MacViminstall_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/Vim 重要的是要注意 /usr/local/bin/vim 应该替换为错误所说的引用文件。就我而言,它是/usr/local/Cellar/macvim/8.1-151/MacVim.app/Contents/bin/../MacOS/Vim【参考方案6】:

首先找到正确的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

更改 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

【讨论】:

这有细微的差别。不要使用which vim,而是使用错误指示的路径。就我而言,它是/usr/local/Cellar/macvim/8.1-151/MacVim.app/Contents/bin/../MacOS/Vim

以上是关于Mac High Sierra 上的 vim ruby​​ 不匹配的主要内容,如果未能解决你的问题,请参考以下文章

老Mac机安装新版High Sierra遇到的问题

无法在 Mac High Sierra 上打开 UIAutomatorviewer

macos high sierra怎么安装

sh Mac OS X High Sierra / PHP Apache httpd配置节点NPM

Mac git pull失败,最新操作系统导致 SSH issues with Mac OS X High Sierra

Vhost 与 Mamp Mac OS High Sierra