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
Это создаст структуру каталогов /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
Вы получите такой вывод:
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.