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


1

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

Я нашел этот связанный вопрос , на который нет ответа.

Ответы:


5

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

brew uninstall macvim
brew install macvim
brew linkapps macvim

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


1

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

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

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

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

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


0

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

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


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

0

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.