如何在 OSX 10.10 上将 MacVim 指向正确的 perl?

如何在 OSX 10.10 上将 MacVim 指向正确的 perl?

当我尝试从命令行使用 MacVim 时,我得到了

dyld: Library not loaded: /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/libperl.dylib
Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim
Reason: image not found
Trace/BPT trap: 5

我尝试了一下brew install -update perl,但后来发现问题不在于 Perl。而在于 Vim 所查找的地方。

$ ls /usr/local/opt/perl/lib/
5.20.1

我试过了brew install -update macvim,但是命令行的 perl 版本也不能正常工作。

MBP:mysite $ perl -v

This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level

摘要:我的 MacVim 正在寻找 Perl 版本 5.12;我的终端使用 Perl 5.18.2;我安装了版本 5.20.1。我该如何重新指向所有内容?

 $ ls -l /usr/bin/perl*
-rwxr-xr-x   1 root  wheel  58416 Sep  9  2014 /usr/bin/perl
-rwxr-xr-x   1 root  wheel  35600 Sep  9  2014 /usr/bin/perl5.16
-rwxr-xr-x   1 root  wheel  35600 Sep  9  2014 /usr/bin/perl5.18
-rwxr-xr-x  38 root  wheel    811 Sep  9  2014 /usr/bin/perlbug
...

我确实找到了这个相关问题,没有答案。

答案1

我有解决方案,虽然不是一个很好的解决方案,但它可以修复 MacVim。

brew uninstall macvim
brew install macvim
brew linkapps macvim

对我有用。希望上面的相关问题能够解决我的 Perl 版本问题。

答案2

您可以尝试将 Perl 5.18 符号链接为 5.12:

sudo ln -s /System/Library/Perl/5.18 /System/Library/Perl/5.12

这将解决 Perl 问题,但它确实会导致下一个错误:

mvim
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib
  Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim
  Reason: image not found

这可能是更大的问题,因为 Ruby 1.8 和 Ruby 2.0 库之间不兼容的可能性更大。

ll /System/Library/Frameworks/Ruby.framework/Versions/
total 4.0K
drwxr-xr-x 7 root 238 Jul  3 16:39 2.0
lrwxr-xr-x 1 root   3 Jul  3 14:18 Current -> 2.0

这时我放弃了,并使用了上述方法,效果很好。

答案3

我在升级到 10.11 后遇到了这个问题,而公认的解决方案对我不起作用。我发现问题不在于更新的 MacVim 安装,而在于 mvim 脚本找到的是一个我甚至不知道的旧 MacVim 二进制文件,而不是刚刚更新的二进制文件。

因此,如果有人遇到此问题并且上述修复不起作用,请仔细查看错误输出中的此行:

  Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim

并确保它引用了您希望使用的 MacVim 的位置!

(我在〜/ bin /中找到了一个)

答案4

brew link perl或者brew link --overwrite perl

在安装或链接之前,应用程序也应该可以工作,这可能是问题的根本原因。

此外,使用不同版本的符号链接更干净,风险也更小

相关内容