Устанавливаем Staticperl. Часть 2.

В предыдущей статье Устанавливаем staticperl. Часть 1. было рассказано, что такое staticperl, зачем он нужен и что необходимо, чтобы его установить и использовать. В данной статье будет рассказано об установке.

Установка

Чтобы начать пользоваться staticperl необходимо просто скопировать сам скрипт (staticperl это shell-скрипт) и запустить. Например,

shell> ~/staticperl install

Однако, мы не станем так делать, а воспользуемся моим небольшим набором патчей. Репозиторий расположен на GitHub: https://github.com/gh0stwizard/staticperl-modules

Ниже представлена инструкция для самостоятельной установки staticperl с использованием моих наработок.

Если, по какой либо причине вы решитесь делать все самостоятельно, то вам понадобится лишь сам файл, который можно забрать, как со CPAN, так и из CVS-репозитория разработчика.

Устанавливаем необходимые файлы

Сначала, скопируем архив с патчами и распакуем его.

shell> mkdir -p ~/dev
shell> cd ~/dev
shell> wget https://github.com/gh0stwizard/staticperl-modules/archive/20150617.tar.gz
shelL> tar xzf 20150617.tar.gz
shell> ln -s staticperl-modules-20150617 staticperl-modules

Этими сложными телодвижениями мы распаковали архив в директорию ~/dev/staticperl/staticperl-modules. Символическая ссылка нужна лишь ради удобства в дальнейшем.

Если у вас установлена утилита git, все можно сделать гораздо проще:

shell> mkdir ~/dev
shell> cd ~/dev
shell> git clone https://github.com/gh0stwizard/staticperl-modules.git

Запомним путь куда мы сохранили архив на будущее, он скоро понадобится.

Файл staticperlrc

Все настройки конфигурации непосредственно для shell-скрипта staticperl располагаются в файле staticperlrc. Данный файл может быть установлен в различных местах, как описано в документации:

  • /etc/staticperlrc
  • ~/.staticperlrc

Воспользуемся вторым вариантом (копируем файл и редактируем):

shell> cp ~/dev/staticperl-modules/misc/staticperlrc ~/.staticperlrc
shell> editor ~/.staticperlrc

Здесь я использовал путь ~/dev/staticperl-modules – место куда мы скопировали файлы из предыдущего пункта.

Файл-скрипт staticperl

Как было сказано ранее, staticperl представляет из себя shell-скрипт. Можно воспользоваться последней версией из CVS-дерева на сайте разработчика. А можно воспользоваться слегка модифицированной версией мною.

shell> cp ~/dev/staticperl-modules/staticperl ~/

Достаточно положить файл staticperl в домашнюю или другую, удобную вам директорию и дать права на исполнение.

shell> chmod +x ~/staticperl

Параметры файла staticperlrc

staticperl использует в работе множество переменных. Ниже перечислен список наиболее важных из них:

  • PERL_VERSION – версия Perl
  • STATICPERL – директория c файлами Perl
  • DLCACHE – директория с архивами исходных файлов Perl (tar.bz2)
  • EMAIL – эл. почта, которая будет использоваться в выводе команды perl -V
  • PERL_CONFIGURE – указывает опции сборки Perl

Т.к. мы пользуемся моими наработками, следует откорректировать путь для переменной GW_PATCHSET, которая должна ссылаться на корень директории staticperl-modules.

Если вам необходимо установить дополнительные модули сразу же после сборки Perl, то можно добавить необходимые команды в функции postinstall, которая расположена в конце файла .staticperlrc.

Запуск сборки

Для сборки достаточно запустить команду ниже:

shell> ~/staticperl install

Результат сборки Perl, файлы и директории, будет располагаться в указанной в конфигурационном файле ~/.staticperlrc переменной STATICPERL директории.

Весь процесс сборки будет выведен на экран. В самом конце инсталляции производится установка минимально необходимых модулей непосредственно для сборки программ. Т.е., эти модули являются частью staticperl. В случае, если данные модули не получится установить, придется понять в чем причина и исправить её.

Как только все будет готово, можно перейти к использованию новособранного Perl!

Используем staticperl

О том как использовать staticperl, собирать программы с помощью него, устанавливать дополнительные модули будет рассказано в следующей статье Устанавливаем staticperl. Часть 3..