Как указать MacVim на правильный Perl на OSX 10.10?

2802
Climbs_lika_Spyder

Когда я пытаюсь использовать 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. Это где Вим смотрит.

$ 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

4 ответа на вопрос

5
Climbs_lika_Spyder

У меня есть решение, не очень хорошее, но оно работает для исправления MacVim.

brew uninstall macvim brew install macvim brew linkapps macvim 

Работал на меня. Надеемся, что вышеупомянутый вопрос станет ответом на мою проблему с версией Perl.

1
benkc

Я столкнулся с этой проблемой после обновления до 10.11, и принятое решение не сработало для меня. Я обнаружил, что проблема была не в обновленной установке MacVim, а в том, что скрипт mvim находил старый двоичный файл MacVim, который я даже не знал, а только что обновленный.

Так что, если кто-то сталкивается с этой проблемой, и указанное выше исправление не работает, внимательно посмотрите на эту строку в выводе вашей ошибки:

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

и убедитесь, что он ссылается на местоположение MacVim, которое вы ожидаете использовать!

(Моя находила одну в ~ / bin /)

0
Miro A.

Вы можете попробовать символическую ссылку на 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 

На данный момент я сдался и использовал вышеуказанный метод, который работал нормально.

Это ** ужасная ** идея; не делай этого Библиотеки Perl 5.12 и 5.18 несовместимы; связывание их вместе приведет к странным ошибкам позже. duskwuff 8 лет назад 1
0
avelo

brew link perl или же brew link --overwrite perl

перед установкой или связыванием приложения также должно работать, и это, вероятно, является основной причиной проблемы.

Кроме того, это намного более чисто и менее рискованно, чем играть с символическими ссылками в разных версиях.