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/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.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 上打开 UIAutomatorviewer
sh Mac OS X High Sierra / PHP Apache httpd配置节点NPM
Mac git pull失败,最新操作系统导致 SSH issues with Mac OS X High Sierra