2

Когда появилась 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 ответ1

2

У меня не было проблем с добавлением новых пакетов CPAN в поставляемый Perl OSX El Capitan. По умолчанию они встроены в ваш домашний каталог и установлены в /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 и иметь возможность переключаться между ними, я бы посоветовал вам взглянуть на perlbrew.

Некоторые другие полезные команды для дальнейшей отладки вашей установки perl:

  • which perl скажет вам, где установлен ваш текущий Perl Exec
  • perl -V предоставит вам больше информации о версии perl, дате его компиляции и опциях, а также о путях включения, которые ищутся для модулей
  • perldoc perllocal покажет вам модули perl, которые вы установили локально с CPAN

Что касается CPAN, как вы заметили, обычное обновление CPAN не выполняется. Однако существует решение, говорящее CPAN об установке в /usr/local/bin/ . Я задокументировал обновление CPAN в этом ответе .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .