Некоторые тексты в интернете имеют свойство пропадать со временем. Особенно обидно бывает, если ты несколько лет использовал какую-нибудь документацию, злоупотреблял копипастом, а в один отличный день заходишь на сайт и получаешь в ответ надпись: "404 Not Found".
Во избежание этого печального события, копирую одну статью к себе в блог. Кстати, статья распространяется под самой лучшей лицензией в мире - WTFPL - обязательно прочитайте ее текст.
Источник статьи: http://wiki.diphost.ru/LocalCPAN
Настройка консоли для работы с локальными модулями
Для того, чтобы интерпретатор Perl, вызванный из консоли, "видел" установленные локально библиотеки, добавьте в файл .profile следующие строки:
|
1 2 3 4 5 |
PERL5LIB=$HOME:$HOME/lib:$HOME/lib/perl5 export PERL5LIB MANPATH=$HOME/share/man export MANPATH |
Это следует сделать ДО установки модулей, во избежании накладок при установке. Не забудьте "перелогиниться" после добавления, чтобы настройки применились.
Установка с помощью модуля CPAN
Также в состав дистрибутива Perl входит модуль под названием CPAN. Он позволяет автоматизировать операции установки необходимых модулей, включая установку зависимостей. Модуль может работать в ручном и пакетном режиме. Рассмотрим для простоты ручной режим работы. Для интерактивной работы с модулем следует набрать команду:
|
1 |
perl -MCPAN -e shell |
При первом запуске программа попытается создать конфигурационный файл и будет задавать вопросы. Проблема в том, что при любых ответах итоговый конфигурационный файл, создаваемый обычно в директории .cpan/CPAN/MyConfig.pm в домашнем каталоге, не готов к использованию для установки модулей локально. В нём нас интересуют нижеследующие строки, которые должны быть заполнены подобным образом:
|
1 2 3 4 5 6 7 |
'build_dir' => qq[$ENV{'HOME'}/.cpan/build], 'cpan_home' => qq[$ENV{'HOME'}/.cpan], 'histfile' => qq[$ENV{'HOME'}/.cpan/histfile], 'keep_source_where' => qq[$ENV{'HOME'}/.cpan/sources], 'makepl_arg' => qq[INSTALL_BASE=$ENV{'HOME'}], 'mbuildpl_arg' => qq[--install_base $ENV{'HOME'}], 'prefs_dir' => qq[$ENV{'HOME'}/.cpan/prefs], |
Вместо $ENV{'HOME'} может стоят полный путь до домашнего каталога пользователя, например: /home/ваш_логин
Убедившись в правильности конфигурации, можно устанавливать модули. Команда
|
1 |
perl -MCPAN -e shell |
запускает специальную интерактивную оболочку. Установка модулей в ней производится например такой командой:
|
1 |
force install ИМЯ_МОДУЛЯ |
Ключевое слово force позволит избежать отказа от установки в случае отрицательных результатов тестов, которые по разным причинам действительно могут быть отрицательными.
Настройка веб-сервера apache для работы с локальными модулями
В файл .htaccess в корневом каталоге сайта или в том каталоге,
где будут cgi-скрипты, добавить строку:
|
1 |
SetEnv PERL5LIB /home/ваш_логин:/home/ваш_логин/lib:/home/ваш_логин/lib/perl5 |
Использование в cron
Для того, чтобы скрипты, запускающиеся по cron, могли иметь доступ к локально установленным библиотекам, в начале crontab-файла следует прописать нужные строки:
|
1 |
PERL5LIB=/home/ваш_логин:/home/ваш_логин/lib:/home/ваш_логин/lib/perl5 |
Обращаем внимание, что переменные типа $PATH не разбираются в crontab и требуется полностью прописывать все пути.
Дополнительная информация
Модуль CPAN также предоставляет возможность пакетной работы по управлению модулями CPAN. Стоит для более тонких настроек модуля или для программирования пакетной работы ознакомиться с документаций CPAN.pm
При установке модулей в Mac OS X надо просматривать файл MyConfig.pm вдвойне внимательно. Может оказаться, что, например, запрещено подключение к интернету ('connect_to_internet_ok' => q[0],).