Administrador de Linux: configurar Perl para CentOS Linux

Perlha existido durante mucho tiempo. Originalmente fue diseñado como un lenguaje de informes utilizado para analizar archivos de texto. Con una popularidad creciente, Perl ha agregado un módulo de soporte o CPAN, sockets, subprocesos y otras características necesarias en un poderoso lenguaje de programación.

La mayor ventaja de Perl sobre PHP, Python o Ruby es: hace las cosas con un mínimo de esfuerzo. Esta filosofía de Perl no siempre significa que hace las cosas de la manera correcta. Sin embargo, para las tareas de administración en Linux, Perl se considera la opción preferida para un lenguaje de scripting.

Algunas ventajas de Perl sobre Python o Ruby son:

  • Potente procesamiento de texto

  • Perl hace que la escritura de scripts sea rápida y sucia (por lo general, un script de Perl será varias docenas de líneas más corto que un equivalente en Python o Ruby)

  • Perl puede hacer cualquier cosa (casi)

Algunos inconvenientes de Perl son:

  • La sintaxis puede resultar confusa

  • El estilo de codificación en Perl puede ser único y atascar la colaboración

  • Perl no está realmente orientado a objetos

  • Por lo general, no se piensa mucho en la estandarización y las mejores prácticas cuando se usa Perl.

Al decidir si usar Perl, Python o PHP; Deben hacerse las siguientes preguntas:

  • ¿Esta aplicación alguna vez necesitará control de versiones?
  • ¿Alguna vez otras personas necesitarán modificar el código?
  • ¿Necesitarán otras personas utilizar esta aplicación?
  • ¿Se utilizará esta aplicación en otra máquina o arquitectura de CPU?

Si las respuestas a todo lo anterior son "no", Perl es una buena opción y puede acelerar las cosas en términos de resultados finales.

Con esto mencionado, configuremos nuestro servidor CentOS para usar la versión más reciente de Perl.

Antes de instalar Perl, debemos comprender el soporte para Perl. Oficialmente, Perl solo es compatible con las dos últimas versiones estables. Por lo tanto, queremos asegurarnos de mantener nuestro entorno de desarrollo aislado de la versión CentOS.

El motivo del aislamiento es: si alguien lanza una herramienta en Perl a la comunidad CentOS, lo más probable es que se modifique para que funcione en Perl tal como se envió con CentOS. Sin embargo, también queremos tener instalada la última versión para fines de desarrollo. Al igual que Python, CentOS envía Perl enfocado en la confiabilidad y no en la vanguardia.

Revisemos nuestra versión actual de Perl en CentOS 7.

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

Actualmente estamos ejecutando Perl 5.16.3. La versión más actual a la fecha de este escrito es: perl-5.24.0

Definitivamente queremos actualizar nuestra versión, pudiendo usar módulos Perl actualizados en nuestro código. Afortunadamente, existe una gran herramienta para mantener los entornos Perl y mantener aislada nuestra versión CentOS de Perl. Se llamaperlbrew.

Instalemos 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

Ahora que tenemos Perl Brew instalado, creemos un entorno para la última versión de Perl.

Primero, necesitaremos la versión actualmente instalada de Perl para iniciar la instalación de perlbrew. Por lo tanto, obtengamos algunos módulos de Perl necesarios del repositorio de CentOS.

Note - Cuando esté disponible, siempre queremos usar módulos CentOS Perl versus CPAN con nuestra instalación CentOS Perl.

Step 1 - Instale el módulo CentOS Perl Make :: Maker.

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

Step 2 - Instale la última versión de perl.

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

Las opciones que elegimos para nuestra instalación de Perl son:

  • n - Sin pruebas

  • j4 - Ejecutar 4 subprocesos en paralelo para las rutinas de instalación (estamos usando una CPU de cuatro núcleos)

  • threads - Habilitar el soporte de subprocesos para Perl

Después de que nuestra instalación se haya realizado correctamente, cambiemos a nuestro entorno Perl más reciente.

[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]#

Impresión de un script de perl simple, una versión de perl que se ejecuta dentro del contexto de nuestro entorno perlbrew -

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

Una vez que perl está instalado, podemos cargar módulos cpan con cpanm de perl brew -

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

Ahora usemos el instalador de cpanm para crear el módulo LWP con nuestra versión actual de Perl de 5.24.1 en perl brew.

Step 1 - Cambie al contexto de nuestra versión actual de Perl.

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

Se lanza un sub-shell con perl-5.24.1 como perl activado. Ejecute 'salir' para terminarlo.

[root@CentOS ~]#

Step 2 - Instale el módulo Perl del agente de usuario de LWP.

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

Step 3 - Ahora probemos nuestro entorno Perl con el nuevo módulo 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 ~]#

¡Ahí tienes! Perl Brew hace que el aislamiento de entornos de Perl sea muy sencillo y puede considerarse como una práctica recomendada a medida que las cosas van pasando con Perl.