Previous
На CPAN == Comprehensive Perl Archive Network. Homepage CPAN --
http://www.cpan.org/ -- там берут все, связанное с перлом. Собственно
исходники новейшей версии перла берут из файла
http://www.perl.com/CPAN/src/latest.tar.gz (на самом деле с www.perl.com
стоит редирект на ближайший, по мнению www.perl.com, mirror).
Там же, где и все, относящееся к перлу -- на CPAN. Полный
список всех модулей и библиотек --
http://www.cpan.org/CPAN.htm
Есть. Полный список зеркал находится в
ftp://ftp.nluug.nl/pub/languages/perl/CPAN/MIRRORED.BY, там можно
найти funet или что там поближе, или даже российские зеркала, например
ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/ (иногда в дауне).
Обычно модуль приходит в формате 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/
Для того, чтобы их использовать, есть несколько путей:
- указывать при запуске 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";
use lib "/home/you/lib/perl5/site_perl";
Данный случай подходит к CGI-скриптам, которые не наследуют ваших
переменных окружения.
Скачивание и установка вручную -- достаточно сложное занятие,
требующее постоянного вмешательства с вашей стороны.
Можно простым способом: сделать su (желательно), запустить
perl -MCPAN -e shell
. Если это первый запуск модуля CPAN,
вам зададут серию вопросов на тему URL вашего любимого зеркала CPAN. После
этого все просто: если вы знаете название модуля или библиотеки, то
набираете, скажем, install Net::NNTP
. Тогда этот модуль (для работы с
NNTP) сам ищется на CPAN, сам скачивается, компилируется,
устанавливается. Все, поставили, можно выходить и использовать вновь
установленный модуль. Если название точно не известно, то набираем
там же help и используем различные команды поиска типа i NNTP.
При использовании CPAN-модуля вам необходимо сконфигурировать его
таким образом, чтобы он сам инсталлировал модули туда, куда вы
укажете. Для этого вам необходимо подредактировать файл
~/.cpan/CPAN/MyConfig.pm:
указать в строке
&makepl_arg& =& q[prefix=/home/you],
и теперь всегда при автоматической инсталляции модули будут ставится к
вам в $HOME/lib/perl5
Более подробно обо всем этом можно прочитать в документации к
ExtUtils::MakeMaker.
NB: Современный Модуль СPAN все сам спросит и сделает.
Previous
Содержание