Amministratore Linux: configurazione di Perl per CentOS Linux

Perlè in circolazione da molto tempo. È stato originariamente progettato come linguaggio di reporting utilizzato per l'analisi dei file di testo. Con una maggiore popolarità, Perl ha aggiunto un supporto per moduli o CPAN, socket, threading e altre funzionalità necessarie in un potente linguaggio di scripting.

Il più grande vantaggio di Perl rispetto a PHP, Python o Ruby è: fa le cose con il minimo sforzo. Questa filosofia di Perl non significa sempre che le cose vengano fatte nel modo giusto. Tuttavia, per le attività di amministrazione su Linux, Perl è considerato la scelta migliore per un linguaggio di scripting.

Alcuni vantaggi di Perl rispetto a Python o Ruby sono:

  • Potente elaborazione del testo

  • Perl rende la scrittura di script rapida e sporca (di solito uno script Perl sarà diverse dozzine di righe più corte di un equivalente in Python o Ruby)

  • Perl può fare qualsiasi cosa (quasi)

Alcuni svantaggi di Perl sono:

  • La sintassi può creare confusione

  • Lo stile di programmazione in Perl può essere unico e ostacolare la collaborazione

  • Perl non è realmente orientato agli oggetti

  • In genere, non c'è molto da pensare alla standardizzazione e alle migliori pratiche quando viene utilizzato Perl.

Quando si decide se utilizzare Perl, Python o PHP; dovrebbero essere poste le seguenti domande:

  • Questa applicazione avrà mai bisogno del controllo delle versioni?
  • Altre persone avranno mai bisogno di modificare il codice?
  • Altre persone avranno bisogno di usare questa applicazione?
  • Questa applicazione verrà mai utilizzata su un'altra macchina o su un'altra architettura della CPU?

Se le risposte a tutte le domande precedenti sono "no", Perl è una buona scelta e può accelerare le cose in termini di risultati finali.

Detto questo, configuriamo il nostro server CentOS per utilizzare la versione più recente di Perl.

Prima di installare Perl, è necessario comprendere il supporto per Perl. Ufficialmente, Perl è supportato solo dalle ultime due versioni stabili. Quindi, vogliamo essere sicuri di mantenere il nostro ambiente di sviluppo isolato dalla versione CentOS.

La ragione dell'isolamento è: se qualcuno rilascia uno strumento in Perl alla comunità CentOS, molto probabilmente verrà modificato per funzionare su Perl come fornito con CentOS. Tuttavia, vogliamo anche avere l'ultima versione installata per scopi di sviluppo. Come Python, CentOS spedisce Perl focalizzato sull'affidabilità e non sull'avanguardia.

Controlliamo la nostra attuale versione di Perl su CentOS 7.

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

Attualmente stiamo eseguendo Perl 5.16.3. La versione più recente al momento della stesura di questo articolo è: perl-5.24.0

Vogliamo sicuramente aggiornare la nostra versione, essendo in grado di utilizzare moduli Perl aggiornati nel nostro codice. Fortunatamente, esiste un ottimo strumento per mantenere gli ambienti Perl e mantenere isolata la nostra versione CentOS di Perl. È chiamatoperlbrew.

Installiamo 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

Ora che abbiamo installato Perl Brew, creiamo un ambiente per l'ultima versione di Perl.

Per prima cosa, avremo bisogno della versione di Perl attualmente installata per avviare l'installazione di perlbrew. Quindi, prendiamo alcuni moduli Perl necessari dal repository CentOS.

Note - Quando disponibili, desideriamo sempre utilizzare i moduli Perl CentOS rispetto a CPAN con la nostra installazione Perl CentOS.

Step 1 - Installa il modulo CentOS Perl Make :: Maker.

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

Step 2 - Installa l'ultima versione di perl.

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

Le opzioni che abbiamo scelto per la nostra installazione di Perl sono:

  • n - Nessun test

  • j4 - Esegui 4 thread in parallelo per le routine di installazione (stiamo usando una CPU quadcore)

  • threads - Abilita il supporto del threading per Perl

Dopo che la nostra installazione è stata eseguita con successo, passiamo al nostro ambiente Perl più recente.

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

Semplice stampa di script perl versione perl in esecuzione nel contesto del nostro ambiente perlbrew -

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

Una volta installato perl, possiamo caricare i moduli cpan con cpanm di perl brew -

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

Ora usiamo l' installatore cpanm per creare il modulo LWP con la nostra attuale versione Perl di 5.24.1 in perl brew.

Step 1 - Passa al contesto della nostra attuale versione Perl.

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

Viene lanciata una sub-shell con perl-5.24.1 come perl attivato. Esegui "exit" per finirlo.

[root@CentOS ~]#

Step 2 - Installa LWP User Agent Perl Module.

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

Step 3 - Ora testiamo il nostro ambiente Perl con il nuovo modulo 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 ~]#

Ecco qui! Perl Brew rende l'isolamento degli ambienti Perl un gioco da ragazzi e può essere considerato come una best practice man mano che le cose si fanno con Perl.