ActivePerl CPAN и .tshrc - PullRequest
       58

ActivePerl CPAN и .tshrc

0 голосов
/ 02 марта 2019

Я установил ActivePerl (5.24.3.1) на Mac OS X и вызвал «хаос» при установке CPAN.Новые установки отделены от "core CPAN.pms" в "sites / lib /".

В любом случае, я вставил следующее в мой каталог .cshrc

setenv PERL5LIB PERL5LIB:/usr/local/ActivePerl-5.24/lib:/usr/local/ActivePerl-5.24/site/lib

Я сделал это, но, кажется, все работает.Это действительный код?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Чтобы подвести итог , вывод запроса командной строки @INC проясняет, что Perl ActiveStates автоматически видит библиотеки CPAN, поэтому "setenv PERL5LIB PERL5LIB:....:...." в .cshrc дублирует это, как идентифицировано @ikegami.

Последняя стабильная реализация Perl в ActiveStates работает нормально, основной проблемой было разрешение на доступ к каталогу sites / lib (установка OS X, а не Linux).

Однако мое приложение для кодирования (BBEdit, версия 12.6.1) требует, чтобы PERL5LIB был установлен в .cshrc до того, как будет работать функция "run".Так что ответ @zdim был полезен в контексте.Спасибо обоим респондентам, оценил.

0 голосов
/ 02 марта 2019

Эта строка правильно добавляется к переменной окружения PERL5LIB в tcsh.

С man tcsh в моей системе

setenv [имя [значение]]

Без аргументов печатает имена и значения всех переменных среды.Для данного имени задается значение переменной среды, равное значению, или, без значения, равное пустой строке.

Переменной среды в tcsh можно задать значение, представляющее список, путем разделения записей с помощьюдвоеточие (:).Таким образом, высказывание PERL5LIB:... является способом добавления к существующему значению PERL5LIB.

PERL5LIB, как объяснено в perlrun , это

Список каталогов, в которых нужно искать файлы библиотеки Perl, прежде чем искать в стандартной библиотекеи текущий каталог.Любые специфичные для архитектуры и специфичные для версии каталоги, такие как версия / archname /, версия / или archname / в указанных местоположениях, автоматически включаются, если они существуют, при этом поиск выполняется во время запуска интерпретатора.

но обратите внимание, что « текущий каталог » больше не ищется для библиотек, что является повышением безопасности в современных версиях Perl.

Таким образом, ваша строка добавляет местоположения /usr/local/ActivePerl кпути по умолчанию, установленные в вашей версии Perl.

Я не могу сказать, как и почему ActivePerl " вызвал хаос при установке CPAN " (?) На Mac OS X. Я предполагаю, что у вас был установлен другой Perl (по вашему упоминанию о« CPAN installantions »), но я не совсем понимаю, какой из них вы используете сейчас, когда ActiveState уже есть (тоже?).

...