![如何在 OSX 10.10 上将 MacVim 指向正确的 perl?](https://linux22.com/image/1445657/%E5%A6%82%E4%BD%95%E5%9C%A8%20OSX%2010.10%20%E4%B8%8A%E5%B0%86%20MacVim%20%E6%8C%87%E5%90%91%E6%AD%A3%E7%A1%AE%E7%9A%84%20perl%EF%BC%9F.png)
当我尝试从命令行使用 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
在安装或链接之前,应用程序也应该可以工作,这可能是问题的根本原因。
此外,使用不同版本的符号链接更干净,风险也更小