Учебники

Linux Admin — Настройка Perl для CentOS Linux

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

Самым большим преимуществом Perl над PHP, Python или Ruby является то, что он работает с минимальными усилиями. Эта философия Perl не всегда означает, что все делается правильно. Однако для задач администрирования в Linux Perl считается наиболее подходящим выбором для языка сценариев.

Некоторые преимущества Perl над Python или Ruby:

  • Мощная обработка текста

  • Perl делает написание скриптов быстрым и грязным (обычно скрипт на Perl будет на несколько десятков строк короче, чем эквивалент в Python или Ruby)

  • Perl может делать что угодно (почти)

Мощная обработка текста

Perl делает написание скриптов быстрым и грязным (обычно скрипт на Perl будет на несколько десятков строк короче, чем эквивалент в Python или Ruby)

Perl может делать что угодно (почти)

Некоторые недостатки Perl —

  • Синтаксис может сбивать с толку

  • Стиль кодирования в Perl может быть уникальным и затруднить сотрудничество

  • Perl не является объектно-ориентированным

  • Как правило, при использовании Perl не уделяется много внимания стандартизации и передовому опыту.

Синтаксис может сбивать с толку

Стиль кодирования в Perl может быть уникальным и затруднить сотрудничество

Perl не является объектно-ориентированным

Как правило, при использовании Perl не уделяется много внимания стандартизации и передовому опыту.

При принятии решения, использовать ли Perl, Python или PHP; следует задать следующие вопросы —

  • Будет ли это приложение когда-либо нуждаться в управлении версиями?
  • Будут ли другие люди когда-либо изменять код?
  • Нужно ли другим людям использовать это приложение?
  • Будет ли это приложение когда-либо использоваться на другой машине или архитектуре процессора?

Если ответы на все вышеизложенные вопросы «нет», Perl является хорошим выбором и может ускорить процесс с точки зрения конечных результатов.

С учетом этого давайте настроим наш сервер CentOS для использования самой последней версии Perl.

Перед установкой Perl нам нужно понять поддержку Perl. Официально Perl поддерживается только в двух последних стабильных версиях. Итак, мы хотим быть уверены, что наша среда разработки изолирована от версии CentOS.

Причина изоляции такова: если кто-то выпустит инструмент на Perl для сообщества CentOS, более чем вероятно, что он будет изменен для работы на Perl, поставляемом с CentOS. Однако мы также хотим, чтобы последняя версия была установлена ​​в целях разработки. Как и Python, CentOS выпускает Perl, ориентированный на надежность, а не ультрасовременность.

Давайте проверим нашу текущую версию Perl на CentOS 7.

[root@CentOS]# perl -v 
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi

В настоящее время мы используем Perl 5.16.3. Самая последняя версия на момент написания этой статьи: perl-5.24.0

Мы определенно хотим обновить нашу версию, чтобы иметь возможность использовать современные модули Perl в нашем коде. К счастью, есть отличный инструмент для поддержки сред Perl и для сохранения нашей версии Perl для CentOS изолированной. Это называется perlbrew .

Давайте установим Perl Brew.

[root@CentOS]# curl -L https://install.perlbrew.pl | bash 
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
                             Dload  Upload   Total   Spent    Left  Speed 
100   170  100   170    0     0    396      0 --:--:-- --:--:-- --:--:--   397 
100  1247  100  1247    0     0   1929      0 --:--:-- --:--:-- --:--:--  1929

Теперь, когда у нас установлен Perl Brew, давайте создадим среду для последней версии Perl.

Во-первых, нам понадобится установленная на данный момент версия Perl для начальной загрузки установки perlbrew. Итак, давайте получим некоторые необходимые модули Perl из репозитория CentOS.

Примечание. По возможности мы всегда хотим использовать модули CentOS Perl по сравнению с CPAN с нашей установкой CentOS Perl.

Шаг 1 — Установите модуль CentOS Perl Make :: Maker.

[root@CentOS]# yum -y install perl-ExtUtils-MakeMaker.noarch

Шаг 2 — Установите последнюю версию Perl.

[root@CentOS build]# source ~/perl5/perlbrew/etc/bashrc
[root@CentOS build]# perlbrew install -n -j4 --threads perl-5.24.1

Варианты, которые мы выбрали для нашей установки Perl:

  • n — нет тестов

  • j4 — выполнить 4 потока параллельно для процедур установки (мы используем четырехъядерный процессор)

  • threads — включить поддержку многопоточности для Perl

n — нет тестов

j4 — выполнить 4 потока параллельно для процедур установки (мы используем четырехъядерный процессор)

threads — включить поддержку многопоточности для Perl

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

[root@CentOS]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

A sub-shell is launched with perl-5.24.1 as the activated perl. Run 'exit' to finish it.

[root@CentOS]# perl -v

This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linuxthread-multi

(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2017, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the GNU General
Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on this system 
using "man perl" or "perldoc perl".  If you have access to the Internet, point your 
browser at http://www.perl.org/, the Perl Home Page.

[root@CentOS]#

Простая версия Perl для печати сценариев Perl, запущенная в контексте нашей среды Perlbrew —

[root@CentOS]# cat ./ver.pl  
#!/usr/bin/perl
print $^V . "\n";

[root@CentOS]# perl ./ver.pl  
v5.24.1 
[root@CentOS]#

После установки perl мы можем загрузить модули cpan с помощью cpanm perl brew —

[root@CentOS]# perl-brew install-cpanm

Теперь давайте используем установщик cpanm для создания модуля LWP с нашей текущей версией Perl 5.24.1 в perl brew.

Шаг 1 — Переключитесь на контекст нашей текущей версии Perl.

[root@CentOS ~]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

Под-оболочка запускается с perl-5.24.1 в качестве активированного perl. Запустите «выход», чтобы закончить.

[root@CentOS ~]#

Шаг 2 — Установите Perl-модуль LWP User Agent.

[root@CentOS ~]# ~/perl5/perlbrew/bin/cpanm -i LWP::UserAgent

Шаг 3 — Теперь давайте протестируем нашу среду Perl с новым модулем CPAN.

[root@CentOS ~]# cat ./get_header.pl  
#!/usr/bin/perl 
use LWP; 
my $browser = LWP::UserAgent->new(); 
my $response = $browser->get("http://www.slcc.edu/"); 
unless(!$response->is_success) { 
   print $response->header("Server"); 
}

[root@CentOS ~]# perl ./get_header.pl  
Microsoft-IIS/8.5 [root@CentOS ~]#

Вот оно! Perl Brew делает изоляцию среды Perl проще простого и может рассматриваться как лучшая практика, когда дела обстоят с Perl.