【问题标题】:vim ruby mismatch on Mac High SierraMac High Sierra 上的 vim ruby​​ 不匹配
【发布时间】: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 还是有什么办法可以解决这个问题?

提前致谢。

【问题讨论】:

标签: ruby macos vim macos-high-sierra


【解决方案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
        猜你喜欢
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 2018-06-21
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        • 2018-06-02
        相关资源
        最近更新 更多