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.
[[email protected]]# 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.
[[email protected]]# 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.
[[email protected]]# yum -y install perl-ExtUtils-MakeMaker.noarch
Step 2 - Instale la última versión de perl.
[[email protected] build]# source ~/perl5/perlbrew/etc/bashrc
[[email protected] 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.
[[email protected]]# ~/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.
[[email protected]]# 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.
[[email protected]]#
Impresión de un script de perl simple, una versión de perl que se ejecuta dentro del contexto de nuestro entorno perlbrew -
[[email protected]]# cat ./ver.pl
#!/usr/bin/perl
print $^V . "\n";
[[email protected]]# perl ./ver.pl
v5.24.1
[[email protected]]#
Una vez que perl está instalado, podemos cargar módulos cpan con cpanm de perl brew -
[ro[email protected]]# 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.
[[email protected] ~]# ~/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.
[[email protected] ~]#
Step 2 - Instale el módulo Perl del agente de usuario de LWP.
[[email protected] ~]# ~/perl5/perlbrew/bin/cpanm -i LWP::UserAgent
Step 3 - Ahora probemos nuestro entorno Perl con el nuevo módulo CPAN.
[[email protected] ~]# 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");
}
[[email protected] ~]# perl ./get_header.pl
Microsoft-IIS/8.5 [[email protected] ~]#
¡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.