Внимание! Прочитайте, пожалуйста, текст в правой колонке (внизу).
Внимание! Прочитайте, пожалуйста, текст в правой колонке (внизу). Внимание! Прочитайте, пожалуйста, текст в правой колонке (внизу). Homepage Карта сайта Версия для печати

Джентльменский набор Web-разработчика   Ларри Уолл о Perl6   Наблы Система Orphus
 

5. Установка модулей Perl, или как стать «сам себе администратором»

[25 августа 2001 г.]

  Одна голова — хорошо, а две — не бывает.
Народная мудрость

Помимо описанных в предыдущих наблах преимуществ (и недостатков), у Perl есть одно большое достоинство перед PHP: существует огромное количество готовых библиотек (модулей). Они призваны облегчить труд программиста. Модули очень легко устанавливать, чего не скажешь о библиотеках для Apache-версии PHP — последние может устанавливать только привилегированный системный администратор.

Если вы работаете (или отлаживаете скрипты) в Windows под ActivePerl, установка будет очень проста. Необходимо проделать следующие действия.

В Unix, как обычно, все несколько сложнее. Вот требуемые действия.
  • Найдите в Интернете нужный модуль. Обычно это файл с расширением tar.gz.

    Чайник 

    Почему два расширения?.. Чтобы в DOS не работало.

    Очень большой архив модулей (практически всемирный) можно найти по адресу http://www.cpan.org (запаситесь глазными каплями и изучите этот сайт очень внимательно — он вам еще не раз пригодится). Ну и кое-что вот тут: http://dklab.ru/chicken/mod/cpan.

  • Распакуйте содержимое архива в любую удобную директорию (после распаковки создастся директория с тем же именем, что и у модуля):

    tar zxf СкачанныйМодуль.tar.gz
    cd СкачанныйМодуль
  • Если вы — мегаломаньяк с системными привилегиями (root-доступом), вы, наверное, захотите установить только что скачанную библиотеку в системную директорию модулей, чтобы она была доступна всем пользвателям. Для этого наберите:

    perl Makefile.PL
    make
    make test
    make install
    Если какая-то из команд закончилась неудачно, значит, с модулем что-то не так, и его автора придется проучить (например, по электронной почте известным всем способом).

    Лирическое отступление 
    Будьте особенно осторожны на этом важном шаге. При использовании «известного всем способа» почти все администраторы серверов иногда делают кое-что кое-кому.

  • Если вы — обычный хостинг-пользователь и хотите установить модуль к себе в локальную директорию (при этом у вас есть Telnet- или SSH-доступ к серверу), выполните команды:

    perl Makefile.PL prefix=$HOME/библиотеки
    make
    make test
    make install
    После выполнения последней команды в вашем домашнем каталоге создастся директория библиотеки, а в ней — какие-то дополнительные поддиректории. Но как же Perl найдет в этом лабиринте путь к нужному модулю?.. Очень просто: вы сами укажете его в первой строчке запускаемого скрипта:
    #!/usr/bin/perl -w
    use lib ($ENV{HOME}||"$ENV{DOCUMENT_ROOT}/..").
        '/библиотеки/lib/site_perl/5.6.0/i386-linux';
    Здесь подразумевается, что модуль (ищите файл с расширением pm в зарослях только что созданных директорий) установился в вашем домашнем каталоге в директорию библиотеки/lib/site_perl/5.6.0/i386-linux.

    Чайник 

    Возможно, в других операционных системах путь будет выглядеть несколько иначе. Например, там может не быть директории i386-linux или 5.6.0. В этом случае вам придется скорректировать путь вручную, глядя на реальную структуру каталогов.

    Обратите внимение на то, как обрабатываются ситуации, когда переменная окружения HOME недоступна (что почти всегда бывает в CGI-скриптах). Встает задача определения домашнего каталога сервера, и нам нужно ее во что бы то ни стало решить. В этом случае мы «зацепляемся» за переменную DOCUMENT_ROOT, то есть директорию, в которой сервер ищет документы. У большинства хостинг-провайдеров эта директория располагается непосредственно в домашнем каталоге, и полный путь к ней выглядит, например, так: /home/dklab/www. Поэтому, присоединив к /home/dklab/www часть «..», мы получаем /home/dklab, что и означает домашний каталог пользователя. (Реально на этом сайте структура каталогов несколько иная, так что DOCUMENT_ROOT равна /home/dklab/domains/www. В этом случае путь к домашнему каталогу будет "$ENV{DOCUMENT_ROOT}/../..".)

    Чайник 

    Если вы не получаете удовольствие от головной боли, настоятельно не рекомендую указывать путь к домашнему каталогу явно. Лучше вычисляйте его во время работы, как описано выше. Хотя код от этого и становится длиннее, зато он гораздо лучше переносим между хостинг-провайдерами, а также может использоваться на разных сайтах без изменения.

Надо для справедливости заметить, что Unix-способ иногда можно использовать и в Windows. Но для этого необходимо:

  • установить Microsoft Visual Studio C/C++;
  • использовать везде nmake вместо make;
  • устанавливать Perl в директорию, в имени которой нет пробелов (последняя ошибка, к сожалению, так и не была исправлена разработчиками ActivePerl). Например, используйте C:/Perl.

Собственно, это все. Теперь вы можете вернуться к предыдущей набле и установить модуль CGI::WebOut. Для того, чтобы двинуться к следующей набле.

 
Рекламный блок
   

Важное объявление:
    автор категорически против копирования и распространения в Интернете всех статей «Куроводства» с возрастом, меньшим 6 месяцев. Печальный опыт «расползания» чрезвычайно устаревших ошибочных версий статьи про Apache действительно объясняет такое решение.

Орфография на «Куроводстве»:
    если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Выделенный текст будет немедленно отослан вебмастеру, а Вы даже ничего и не заметите — настолько быстро все произойдет.

На заметку:
    если вы уже вскипели насчет дизайна этой страницы, то присмотритесь повнимательнее к названию, почитайте FAQ, сходите по лебедевским местам, как это уже предлагалось выше. Можно ли считать пародию плагиатом? Надеюсь, что нет.

Параметры этой страницы
   
GZip

Ссылки от спонсоров
   


Дмитрий Котеров | 25 августа 2001 г. ©1999-2016 | Генеральный спонсор: Хостинг «Джино» | Контакт Вернуться к оглавлению