FAQ по perl и программированию для web - Установка модулей
ОГЛАВЛЕНИЕ
1.4 Я скачал модуль Lib::Module. Как его установить?
Обычно модуль приходит в формате tar+gzip, типа module-0.01.tar.gz. Вам необходимо его развернуть: tar zxf module-0.01.tar.gz и перейти в образовавшуюся директорию, например module-0.01: cd module-0.01 Обычно там находятся несколько файлов. Для вас будут важными следующие:
- README
что это за модуль
- INSTALL
как его поставить
- Makefile.PL
перловый скрипт для генерации Makefile
Обычно инсталляция происходит следующим образом:
- perl Makefile.PL
генерация Makefile
- make all
сборка модуля
- make test
тестирование модуля
- make install
инсталляция модуля
Необходимо внимательно смотреть, не возникли ли какие ошибки во время первых трех команд. Внимание: вы должны иметь административные привилегии для инсталлирование модуля в системе (обычно как root).
Но, если вы их не имеете, то можете инсталлировать модуль у себя. Для этого вам необходимо выбрать, где это будет делаться. Для примера, в $HOME/lib/perl5. Необходимо создать эти директории, если их нет:
Затем, при генерации Makefile для модуля, вы должны указать, где вы хотите инсталлировать модуль:perl Makefile prefix=$HOME Все остальные шаги без изменений. В результате вы получите альтернативное место, где у вас будут находиться модули. Например, у меня это выглядит так:
mkdir ~/lib
mkdir ~/lib/perl5
artur@disco:~ (681) ls -alFg ~/lib/perl5/
total 704
drwxr-sr-x 8 artur staff 512 Oct 06 15:53 ./
drwxr-sr-x 9 artur staff 1024 Oct 08 10:50 ../
drwxr-sr-x 4 artur staff 512 Mar 31 1998 aix/
drwxr-sr-x 2 artur staff 512 Aug 06 13:40 CPAN/
-r--r--r-- 1 artur staff 126951 Jul 24 19:37 CPAN.pm
drwxr-sr-x 3 artur staff 512 Mar 31 1998 man/
drwxr-sr-x 31 artur staff 1024 Sep 09 15:41 site_perl/
Для того, чтобы их использовать, есть несколько путей:
- указывать при запуске perl в командной строке:
perl -I$HOME/lib/perl5 -I$HOME/lib/perl5/site_perl script.pl
- завести переменную шелла PERL5LIB: для sh (bash,zsh,ksh)
PERL5LIB=$HOME/lib/perl5:$HOME/lib/perl5/site_perl
export PERL5LIB для csh (tcsh)setenv PERL5LIB $HOME/lib/perl5:$HOME/lib/perl5/site_perl
- указывать в начале скриптов дополнительные библиотеки:
use lib "/home/you/lib/perl5";
Данный случай подходит к CGI-скриптам, которые не наследуют ваших переменных окружения.
use lib "/home/you/lib/perl5/site_perl";
1.5 Как автоматизировать процесс установки библиотек и модулей?
Скачивание и установка вручную -- достаточно сложное занятие, требующее постоянного вмешательства с вашей стороны. Можно простым способом: сделать su (желательно), запустить perl -MCPAN -e shell. Если это первый запуск модуля CPAN, вам зададут серию вопросов на тему URL вашего любимого зеркала CPAN. После этого все просто: если вы знаете название модуля или библиотеки, то набираете, скажем, install Net::NNTP. Тогда этот модуль (для работы с NNTP) сам ищется на CPAN, сам скачивается, компилируется, устанавливается. Все, поставили, можно выходить и использовать вновь установленный модуль. Если название точно не известно, то набираем там же help и используем различные команды поиска типа i NNTP.
1.6 У меня нет root-привилегий. Можно ли использовать модуль CPAN для установки модулей в этом случае?
При использовании CPAN-модуля вам необходимо сконфигурировать его таким образом, чтобы он сам инсталлировал модули туда, куда вы укажете. Для этого вам необходимо подредактировать файл ~/.cpan/CPAN/MyConfig.pm: указать в строке &makepl_arg& =& q[prefix=/home/you], и теперь всегда при автоматической инсталляции модули будут ставится к вам в $HOME/lib/perl5 Более подробно обо всем этом можно прочитать в документации к ExtUtils::MakeMaker.
NB: Современный Модуль СPAN все сам спросит и сделает.