Установка Perlbrew и управление версиями Perl 5 в CentOS 7

Perl 5 – это зрелый, полнофункциональный язык программирования. Он используется в проектах всех типов, включая критически важные бизнес-системы. Программный пакет Perlbrew позволяет устанавливать, удалять и переключаться между версиями языка программирования Perl 5.

Perlbrew устанавливает Perl в домашнем каталоге. Каждая установленная версия Perl не зависит от других. Это позволяет протестировать код в нескольких версиях Perl. Perlbrew по умолчанию включает пакет Perl для текущей операционной системы (обычно устаревший).

Этот мануал поможет установить Perlbrew и освоить управление версиями Perl 5.

Требования

  • Сервер CentOS 7.
  • Пользователь с доступом к sudo.
  • Брандмауэр.

Все инструкции можно найти здесь.

1: Установка Perlbrew

У Perlbrew есть ряд зависимостей: компилятор gcc и утилита сжатия bzip2 для компиляции и установки Perl. В CentOS 7 этих пакетов нет по умолчанию (возможно, вы добавили их ранее самостоятельно).

Примечание: Номера версий пакетов в следующих примерах могут отличаться от ваших, поскольку они периодически обновляются.

Для сборки Perl требуются два пакета, libgcc и gcc. Чтобы проверить их наличие, выполните следующую команду:

rpm -qa | grep gcc

Если они установлены, вы увидите:

Is the gcc package installed?
libgcc-4.8.5-11.el7.x86_64
gcc-4.8.5-11.el7.x86_64

CentOS 7 по умолчанию включает только libgcc. Чтобы установить gcc, введите:

sudo yum install gcc

Также нужно установить пакеты bzip2-libs и bzip2. Проверьте их наличие:

rpm -qa | grep bzip2

Если пакеты установлены, вы увидите на экране:

Is the bzip2 package installed?
bzip2-libs-1.0.6-13.el7.x86_64
bzip2-1.0.6-13.el7.x86_64

По умолчанию в CentOS 7 есть только bzip2-libs. Чтобы установить bzip2, введите:

sudo yum install bzip2

Установите утилиту patch:

sudo yum install patch

Установив зависимости, вы можете установить Perlbrew. Загрузите установочный сценарий:

curl -L https://install.perlbrew.pl -o install.perlbrew.pl

Ознакомьтесь с содержимым сценария:

vi install.perlbrew.pl

Передайте сценарий в bash:

cat install.perlbrew.pl | bash

Читайте также: Перенаправление ввода-вывода в Linux

Это создаст структуру каталогов /home/8host/perl5, в которых Perlbrew будет хранить файлы и версии Perl. Сценарий выведет на экран следующий результат:

## Download the latest perlbrew
## Installing perlbrew
perlbrew is installed: ~/perl5/perlbrew/bin/perlbrew
perlbrew root (~/perl5/perlbrew) is initialized.
Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:
source ~/perl5/perlbrew/etc/bashrc
Simply run `perlbrew` for usage details.
Happy brewing!
## Installing patchperl
## Done.

С помощью утилиты perlbrew создайте конфигурационные файлы и каталоги  в /home/8host/perl5/perlbrew.

~/perl5/perlbrew/bin/perlbrew self-install

Появится вывод:

You are already running the installed perlbrew:

/home/8host/perl5/perlbrew/bin/perlbrew

Теперь пакет Perlbrew установлен. Отредактируйте конфигурационные файлы оболочки.

2: Добавление Perlbrew в .bash_profile

Прежде чем использовать Perlbrew для установки версий Perl, нужно отредактировать файл .bash_profile и определить некоторые важные переменные среды Perlbrew. Perlbrew позволяет добавить необходимый код в другой конфигурационный файл, который можно включить в .bash_profile.

Откройте ~/.bash_profile:

vi ~/.bash_profile

Чтобы включить в файл параметры Perlbrew, добавьте в конец строку:

source ~/perl5/perlbrew/etc/bashrc

Сохраните и закройте файл.

Выйдите и войдите в систему снова, чтобы перезапустить файл .bash_profile. Это добавит /home/8host/perl5/perlbrew/bin в переменную среды PATH и установит некоторые другие переменные Perlbrew.

Убедитесь, что эти переменные среды были установлены, с помощью команды env. Отфильтруйте результат с помощью grep.

env | grep PERL

Читайте также: Использование Grep и регулярных выражений для поиска текстовых шаблонов в Linux

Вы получите такой вывод:

PERLBREW_BASHRC_VERSION=0.78
PERLBREW_ROOT=/home/8host/perl5/perlbrew
PERLBREW_HOME=/home/8host/.perlbrew

Команда which perlbrew определит полный путь к команде perlbrew.

which perlbrew
~/perl5/perlbrew/bin/perlbrew

Perlbrew готов к работе.

3: Установка и сборка версий Perl

Попробуйте установить версию Perl 5 с помощью Perlbrew. Команда perlbrew может отобразить доступные версии Perl.

perlbrew available
perl-5.25.11
perl-5.24.1
perl-5.22.3
perl-5.20.3
perl-5.18.4
...

Нечетные версии (как perl-5.25) находятся в активной разработке и не считаются стабильными или готовыми к производству. Обычно версии до 5.10.1 не используются, если в проекте нет устаревшего кода, для которого требуется одна из этих более ранних версий.

Согласно выводу perl-5.24.1 является последней стабильной версией (так как её номер – наибольшее четное число). Вы можете выбрать любую версию Perl в списке. Для примера мы установим perl-5.24.1.

Введите команду:

perlbrew install perl-5.24.1

Установка Perl может занять довольно много времени: сборка вместе с установкой обычно занимает около 20 минут. Не прерывайте процесс сборки. Если вы хотите увидеть прогресс, откройте отдельный сеанс терминала и просмотрите лог сборки с помощью команды:

tail -f ~/perl5/perlbrew/build.perl-5.24.1.log.

После сборки вы увидите:

perl-5.24.1 is successfully installed.

После окончания сборки в логе появится:

##### Brew Finished #####

Этот процесс можно повторить для любой необходимой версии Perl. Так вы можете установить неограниченное количество версий.

4: Управление версиями Perl

На данный момент в системе есть две версии Perl: версия, поставляемая по умолчанию с операционной системой, и версия Perl, которую вы только что установили в каталоге ~ perl5 с помощью Perlbrew.

Чтобы использовать новую установку Perl, введите:

perlbrew use perl-5.24.1

Эта команда обновит переменную среды PERLBREW_PERL, после чего она будет указывать на выбранную версию Perl в текущей сессии.

Чтобы сделать версию Perl версией по умолчанию, запустите команду:

perlbrew switch perl-5.24.1

Эта команда меняет значение переменной PERLBREW_PERL, после чего она постоянно указывает на выбранную версию Perl.

Убедитесь, что теперь вы используете Perl 5.24.1.

perl -V

Команда вернет:

...
%ENV:
PERLBREW_BASHRC_VERSION="0.78"
PERLBREW_HOME="/home/8host/.perlbrew"
PERLBREW_MANPATH="/home/8host/perl5/perlbrew/perls/perl-5.24.1/man"
PERLBREW_PATH="/home/8host/perl5/perlbrew/bin:/home/8host/perl5/perlbrew/perls/perl-5.24.1/bin"
PERLBREW_PERL="perl-5.24.1"
PERLBREW_ROOT="/home/8host/perl5/perlbrew"
PERLBREW_VERSION="0.78"
@INC:
/home/8host/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.1/x86_64-linux
/home/8host/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.1
/home/8host/perl5/perlbrew/perls/perl-5.24.1/lib/5.24.1/x86_64-linux
/home/8host/perl5/perlbrew/perls/perl-5.24.1/lib/5.24.1
.

Perlbrew устанавливает только базовый код Perl. Чтобы просмотреть доступные модули для конкретной версии Perl, выполните:

corelist -v 5.24.1

Чтобы вернуться к версии Perl, поставляемой вместе с системой, введите команду perlbrew off.

Если вы использовали perlbrew switch для установки новой версии Perl по умолчанию, вы можете удалить эту настройку помощью perlbrew switch-off.

Команда perlbrew без флагов генерирует простой список полезных команд. Команда perlbrew help выводит более подробную справочную информацию.

5: Установка модулей CPAN

Perl предоставляет широкий выбор открытых модулей кода, расширяющих основной язык. Эти модули хранятся в Comprehensive Perl Archive Network (CPAN). Код, который вы собираетесь писать, уже может быть написан, протестирован и доступен в CPAN. Вы можете использовать репозиторий CPAN, чтобы не изобретать велосипед заново.

App::cpanminus – это популярный модуль Perl, который позволяет просматривать репозиторий CPAN и загружать модули. Установите его, чтобы протестировать установку Perl.

Убедитесь, что вы используете новую установку Perl:

perlbrew use perl-5.24.1

Установите модуль cpanminus:

curl -L https://cpanmin.us | perl - App::cpanminus

Вы увидите следующий результат:

--> Working on App::cpanminus
Fetching http://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7043.tar.gz ... OK
Configuring App-cpanminus-1.7043 ... OK
Building and testing App-cpanminus-1.7043 ... OK
Successfully installed App-cpanminus-1.7043
1 distribution installed

Проверьте установку cpanminus:

perlbrew list-modules

Модуль App::cpanimus появится в списке:

App::cpanminus
Perl

Теперь вы можете использовать утилиту командной строки cpanm для установки дополнительных модулей и их зависимостей. Попробуйте установить модуль Email::Simple, который поможет написать код Perl для отправки сообщений электронной почты.

cpanm Email::Simple

Снова проверьте список модулей:

perlbrew list-modules
App::cpanminus
Email::Date::Format
Email::Simple
Perl

Модуль Email::Simple требует установить модуль Email:Date::Format. Утилита cpanm автоматически устанавливает зависимости.

Если вы не знаете, какие модули выбрать, чтобы расширить основную установку Perl, обратитесь к Task::Kensho. Здесь описаны многочисленные модули, предназначенные для решения широкого круга задач.

Заключение

Теперь вы умеете устанавливать Perlbrew и использовать его для установки версий Perl в домашнем каталоге. Также вы умеете использовать Perlbrew для управления версиями Perl и устанавливать дополнительные модули из репозитория CPAN с помощью утилиты cpanm.

Tags: , , ,