2014-03-29 4 views
6

Я рассматриваю Perl как новичок. Я хочу попробовать некоторые модули CPAN. Когда я запускаю команду установить на моей консоли OSX, CPAN просит конфигурацию со следующим утверждением:Начальная конфигурация CPAN

Для установки модулей, необходимо настроить локальный каталог Perl библиотеки или нагнетать привилегии. CPAN может помочь вам с помощью загружать локальный модуль :: lib или настраивать себя на использование 'sudo' (если доступно). Вы также можете решить эту проблему вручную, если вам нужно настроить свою настройку.

Какой подход вы хотите? (Выберите 'локальный :: Lib', 'Sudo' или 'вручную')

В чем разница между local::lib и sudo варианты? Если я это хорошо понимаю, он устанавливает некоторые модули локально на моем компьютере. Но я не вижу разницы между этими двумя конфигурациями выше.

+1

Если я правильно помню, использование 'local :: lib' будет создавать' ~/perl5' и устанавливать там модули. – NigoroJr

ответ

8

Если вы используете sudo, CPAN будет использовать root для установки библиотек в центральном месте, где все пользователи на компьютере могут обращаться к файлам без какой-либо специальной настройки. Если вы используете «local :: lib», он создаст библиотеку в вашем домашнем каталоге и установит модули таким образом, чтобы только модули perl, которые были настроены для поиска модулей в вашем домашнем каталоге, найдут модули.

Для поиска путей модулей Perl использует специальную переменную @INC. Таким образом, вы можете устанавливать модули в любом месте, пока вы правильно установили @INC, прежде чем использовать их. В этой статье объясняются основы.

http://www.symkat.com/find-a-perl-modules-path

Вы можете сделать все виды забавного материала с @INC; один из моих любимых хаков, чтобы он помещал туда указатель функций и использовал пользовательский код perl для модулей поиска.

3

Хороший вопрос. Когда вы используете local::lib, вы можете установить модули через CPAN Пользовательский указатель в данной папке. Предположим, что вы выбираете sudo, поскольку вы устанавливаете модули глобальными.

Его как установка Node.js через npm. Когда вы устанавливаете модуль с npm install -g <Modul>, его глобальный установлен, и вы можете использовать его повсюду. Но с этим -g флагом, его просто доступно в вашем текущем каталоге.

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

+0

Спасибо за ваш пример! Я не знаком с node.js, но я понимаю, что глобальный и локальный выбор. –

+0

Ну ладно, стоит попробовать: D –

Смежные вопросы