Как указать MacVim на правильный Perl на OSX 10.10?
Когда я пытаюсь использовать 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
...
Я нашел этот связанный вопрос, на который нет ответа.
4 ответа
У меня есть решение, не очень хорошее, но оно работает для исправления MacVim.
brew uninstall macvim
brew install macvim
brew linkapps macvim
Работал на меня. Надеюсь, вышеупомянутый вопрос станет ответом на мою проблему с версией Perl.
Я столкнулся с этой проблемой после обновления до 10.11, и принятое решение не сработало для меня. Я обнаружил, что проблема не в обновленной установке MacVim, а в том, что скрипт mvim находил старый двоичный файл MacVim, о котором я даже не подозревал, а не недавно обновленный.
Так что, если кто-то сталкивается с этой проблемой, и вышеприведенное исправление не работает, внимательно посмотрите на эту строку в выводе вашей ошибки:
Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim
и убедитесь, что он ссылается на местоположение MacVim, которое вы ожидаете использовать!
(Моя находила одну в ~/bin/)
Вы можете попробовать символическую ссылку на 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
На данный момент я сдался и использовал вышеуказанный метод, который работал нормально.
brew link perl
или же brew link --overwrite perl
перед установкой или связыванием приложения также должно работать, и это, вероятно, является основной причиной проблемы.
Кроме того, это намного более чисто и менее рискованно, чем играть с символическими ссылками в разных версиях.