Как добавить модули Perl, используя CPAN на El Capitan
Когда появилась OS X El Capitan, возможность использовать CPAN для добавления или обновления модулей Perl исчезла. Кажется, что сценарии либо хотят изменить /usr/bin
, который сейчас запрещен, или они пытаются использовать двоичные файлы из /sw/usr/bin
которые не существуют и находятся в /usr/bin
вместо. Сам Perl не может быть установлен, потому что он хочет установить в /usr/bin
вместо /usr/local/bin
,
Где скрипты, которые используют эти /sw/usr/bin
? Кажется, они должны использовать PATH для определения местоположения двоичных файлов вместо их жесткого кодирования.
Кто-нибудь знает, как починить Perl и CPAN на El Capitan? Подробные инструкции будут полезны.
1 ответ
У меня не было проблем с добавлением новых пакетов CPAN в поставляемый OSX El Capitan Perl. По умолчанию они встроены в ваш домашний каталог и установлены в /Library/Perl/5.18/
который доступен для записи с правами root.
/sw/
упомянутый вами префикс, похоже, происходит от установки Fink. Если вы ранее установили другой Perl из Fink, вам, вероятно, потребуется обновить установку Fink и обновить пакет perl, исходящий от него.
Если вы уверены, что не используете Fink и хотите запустить другую версию Perl, кроме той, которая поставляется с OS X, вы можете использовать ту из homebrew. Он будет установлен в /usr/local
и будет доступен для его вызова, но все Perl-программы OSX будут продолжать использовать версию perl, поставляемую с OSX. Помните, что Fink и Homebrew плохо играют друг с другом, лучше придерживаться одного.
Наконец, если вы хотите запустить несколько версий perl и иметь возможность переключаться между ними, я бы посоветовал вам взглянуть на http://perlbrew.pl/.
Некоторые другие полезные команды для дальнейшей отладки вашей установки Perl:
which perl
скажет вам, где установлен ваш текущий perl execperl -V
предоставит вам дополнительную информацию о версии perl, дате ее компиляции и опциях, а также о путях включения, в которых ищутся модулиperldoc perllocal
выведет список модулей Perl, которые вы установили локально с CPAN
Что касается CPAN, как вы заметили, обычное обновление CPAN не выполняется. Однако существует решение, говорящее CPAN об установке в /usr/local/bin/
, Я задокументировал обновление CPAN в этом ответе.