Ключевые слова:perl, module, install, (найти похожие документы)
From: Дмитрий Котеров <http://www.dklab.ru/>
Newsgroups: http://www.dklab.ru/
Date: Mon, 20 Apr 2005 18:21:07 +0000 (UTC)
Subject: Установка Perl модулей с CPAN
Оригинал: http://www.dklab.ru/chicken/nablas/36.html
Установка модулей с CPAN, или откусите кусочек мира.
Вначале пара слов о том, что такое CPAN. CPAN - это Comprehensive Perl
Archive Network, или Сеть Всемирного Архива Perl-кода. Все добро
доступно на сайте http://cpan.org.
Чайник: На практике чаще всего используется его поисковый интерфейс,
доступный по адресу http://search.cpan.org. Вероятнее всего, в 99
случаев из 100 вы будете пользоваться именно им.
В основном на CPAN хранятся различные модули для Perl -- как раз то,
чем этот язык славится и будет славиться еще очень и очень долго.
Прежде, чем писать что-то самостоятельно, имеет смысл заглянуть на
CPAN: вдруг кто-то уже выполнил аналогичную работу. А использовать
чужие модули практически всегда предпочтительнее, чем писать свои --
ибо чаще всего они оказываются уже отлаженными и проверенными
стараниями многих людей.
Последовательность действий
В пятой набле ( http://www.dklab.ru/chicken/nablas/5.html) я уже
писал о том, как устанавливать модули Perl, не прилагая к этому
особенных усилий. Если вы ставите модуль с CPAN, ситуация может еще
более упроститься. Вам нужно лишь удостовериться, что вы подключены к
Интернету, а затем набрать в командной строке: perl -MCPAN -e shell
Чайник: Ключ -Mмодуль означает то же, что use модуль, а ключ -e
команды заставляет интерпретатор выполнить указанные команды Perl.
Таким образом, приведенная выше командная строка делает то же, что и
обыкновенный скрипт { use CPAN; shell; }
Если вы запускаете эту команду впервые, вам будут заданы различные
вопросы, касающиеся конфигурации Perl на вашей машине. Самый перый
вопрос -- готовы ли вы к ручному конфигурированию. Попробуйте ответить
на него <<n>> (т.е. <<нет>>) -- в этом случае все установки примут
значения по умолчанию, чаще всего правильные.
Как только появится командная строка CPAN, достаточно набрать:
help
Затем, ознакомившись с возможными командами, наберите:
install ИмяМодуля
Этим вы заставите CPAN.pm скачать модуль ИмяМодуля, откомпилировать,
проверить и установить его. Главное достоинство такого способа в том,
что, если модуль зависит от других модулей, они также будут
автоматически скачаны и установлены.
Чайник Учтите, что CPAN.pm действует в соответствии с <<ручным>>
способом, описанным в пятой набле. А значит, Вам потребуется
Microsoft Visual Studio для компиляции модулей. Кроме того, не лишним
будет установить комплект UnxUtils:
http://unxutils.sourceforge.net и прописать в переменную окружения
PATH путь к директории, в которую вы установили утилиты.
Другие команды (на примере модуля File::Slurp):
* get File::Slurp -- скачать указанный модуль, но ничего с ним не
делать;
* make File::Slurp -- откомпилировать скачанный ранее модуль;
* test File::Slurp -- запустить встроенные в модуль скрипты
тестирования;
* clean File::Slurp -- удалить результаты компиляции, но оставить
исходные тексты.
Чайник: Следует заметить, что не все модули требуют компиляции в
прямом смысле этого слова. Например, лишь небольшая часть модулей
использует вставки на языке Си. Тем не менее, даже если вставок и нет,
процесс все равно включает в себя этап, сходный с компиляцией, и
выполняющийся при помощи утилиты make (nmake в Microsoft Visual
Studio).
Переконфигурирование CPAN.pm
Существует несколько видов проблем, которые могут возникнуть при инсталляции
модулей через CPAN. Попробую кратко их описать. Первая проблема касается
неправильной настройки модуля CPAN.pm, которая происходит при первом запуске
perl -MCPAN -e shell. Например, вы могли выбрать неправильный адрес зеркала
CPAN (адрес сайта, с которого будут скачиваться модули) и не знаете, как его
изменить.
Все настройки CPAN.pm хранит в файле модуля CPAN::Config, обычно расположенного
в файле %PERL%/lib/CPAN/Config.pm (где %PERL% - это директория, в которую
установлен Perl; в Денвере это /usr). Если вы работаете в Unix, путь может быть
также ~/.cpan/CPAN/MyConfig.pm, т.е. файл располагается в домашнем каталоге
пользователя. При первом запуске Config.pm (содержащий единственную строчку
"1;") переименовывается в Config.pm~, а в исходный файл записывается
конфигурация CPAN.
Следовательно, существует два способа принудительно изменить конфигурацию
CPAN.pm. Во-первых, можно переименовать Config.pm~ назад в Config.pm (переписав
поверх), тогда при следующем старте будут снова заданы все вопросы о настройке.
Во-вторых, можно просто в текстовом редакторе поправить в файле нужные
параметры.
Проблема пробелов
Вторая проблема -- это бич всех разработчиков, всю жизнь использовавших Unix и
решивших перенести свои творения в Windows. Она связана с тем, что имена двух
самых распространенных директорий -- Program Files и Documents and Settings --
содержат пробелы, в то время как в Unix такой стиль именования не принят. В
результате можно делать ставки на то, что при попытке инсталляции какого-нибудь
модуля через CPAN.pm вы получите сообщение вроде <<не найден путь C:\Program>>,
и ничего не выйдет. Действительно, Perl пытается запустить командную строку
"C:\Program files\Microsoft Visual Studio\bin\nmake.exe параметры", не заключив
по привычке имя программы в кавычки -- вот и результат.
Лирическое отступление: В то же время, я смутно подозреваю, что в
Микрософте не дураки сидят, и пробелы в именах -- далеко не
случайность. Дело в том, что уже при разработке и отладке под Windows
программист волей-неволей вынужден учитывать эти пробелы, а значит,
его программы автоматически остаются рабочими даже в случае, если
другие пути, с которыми они работают, содержат пробелы. В результате
мы имеем более качественный код, ведь условия отладки намеренно
ужесточены.
Но вернемся к ошибке в CPAN.pm. К счастью, Микрософт предоставлят
альтернативный способ именования файлов, когда имя состоит максимум из 8
символов и не содержит пробелов. При таком стиле C:\Program Files выглядит как
C:\PROGRA~1, а C:\Documents and Settings -- как C:\DOCUME~1. (Узнать
<<короткие>> имена можно при помощи команды dir /x.) Остается лишь вручную
заменить все <<длинные>> пути на <<короткие>> в Config.pm (см. раздел выше) и в
переменной окружения PATH.
а посложнее нельзя было? писал профи для профи, а профи умеют и так устанавливать... ты разжуй, напиши проще, меньше сленга, только по теме, ты же для новичка пишешь (раз речь про такую задачу)
Главное не сказано. А именно то, как настроить целевые каталоги инсталляции модулей в систему. Например, что надо сделать, чтобы все модули инсталлировались только в 'vendor', а не разбрасывались по системе как дерьмо с вентилятора.