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. Необходимо создать эти директории, если их нет:

 
mkdir ~/lib
mkdir ~/lib/perl5
Затем, при генерации Makefile для модуля, вы должны указать, где вы хотите инсталлировать модуль:perl Makefile prefix=$HOME Все остальные шаги без изменений. В результате вы получите альтернативное место, где у вас будут находиться модули. Например, у меня это выглядит так:
  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/

Для того, чтобы их использовать, есть несколько путей:

  1. указывать при запуске perl в командной строке:
    perl -I$HOME/lib/perl5 -I$HOME/lib/perl5/site_perl script.pl
  2. завести переменную шелла 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
  3. указывать в начале скриптов дополнительные библиотеки:
    use lib "/home/you/lib/perl5";
    use lib "/home/you/lib/perl5/site_perl";
    Данный случай подходит к CGI-скриптам, которые не наследуют ваших переменных окружения.

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 все сам спросит и сделает.