Administrador Linux - Configurar Perl para CentOS Linux
Perljá existe há muito tempo. Ele foi originalmente projetado como uma linguagem de relatório usada para analisar arquivos de texto. Com o aumento da popularidade, Perl adicionou um suporte a módulo ou CPAN, sockets, threading e outros recursos necessários em uma linguagem de script poderosa.
A maior vantagem do Perl sobre PHP, Python ou Ruby é: ele faz as coisas com o mínimo de barulho. Essa filosofia do Perl nem sempre significa que as coisas são feitas da maneira certa. No entanto, para tarefas de administração no Linux, Perl é considerado a escolha certa para uma linguagem de script.
Algumas vantagens do Perl sobre Python ou Ruby são -
Processamento de texto poderoso
Perl torna a escrita de scripts rápida e suja (geralmente um script Perl terá várias dezenas de linhas mais curtos do que um equivalente em Python ou Ruby)
Perl pode fazer qualquer coisa (quase)
Algumas desvantagens do Perl são -
A sintaxe pode ser confusa
O estilo de codificação em Perl pode ser único e atrapalhar a colaboração
Perl não é realmente orientado a objetos
Normalmente, não há muito pensamento colocado em padronização e melhores práticas quando o Perl é usado.
Ao decidir se usar Perl, Python ou PHP; as seguintes perguntas devem ser feitas -
- Este aplicativo algum dia precisará de controle de versão?
- Outras pessoas precisarão modificar o código?
- Outras pessoas precisarão usar este aplicativo?
- Este aplicativo será usado em outra máquina ou arquitetura de CPU?
Se as respostas para todas as perguntas acima forem "não", Perl é uma boa escolha e pode acelerar as coisas em termos de resultados finais.
Com isso mencionado, vamos configurar nosso servidor CentOS para usar a versão mais recente do Perl.
Antes de instalar o Perl, precisamos entender o suporte para Perl. Oficialmente, o Perl só é suportado desde as duas últimas versões estáveis. Portanto, queremos ter certeza de manter nosso ambiente de desenvolvimento isolado da versão CentOS.
A razão para o isolamento é: se alguém lançar uma ferramenta em Perl para a comunidade CentOS, é mais do que provável que ela seja modificada para funcionar em Perl conforme fornecida com o CentOS. No entanto, também queremos ter a versão mais recente instalada para fins de desenvolvimento. Como o Python, o CentOS distribui o Perl focado na confiabilidade e não na vanguarda.
Vamos verificar nossa versão atual do Perl no CentOS 7.
[[email protected]]# perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
No momento, estamos executando o Perl 5.16.3. A versão mais atual no momento em que este documento foi escrito é: perl-5.24.0
Definitivamente, queremos atualizar nossa versão, sendo capazes de usar módulos Perl atualizados em nosso código. Felizmente, existe uma ótima ferramenta para manter ambientes Perl e manter nossa versão CentOS de Perl isolada. É chamadoperlbrew.
Vamos instalar o 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
Agora que temos o Perl Brew instalado, vamos criar um ambiente para a versão mais recente do Perl.
Primeiro, precisaremos da versão do Perl instalada atualmente para inicializar a instalação do perlbrew. Portanto, vamos obter alguns módulos Perl necessários do repositório CentOS.
Note - Quando disponível, sempre queremos usar módulos CentOS Perl em vez de CPAN com nossa instalação CentOS Perl.
Step 1 - Instale o módulo CentOS Perl Make :: Maker.
[[email protected]]# yum -y install perl-ExtUtils-MakeMaker.noarch
Step 2 - Instale a versão mais recente do perl.
[[email protected] build]# source ~/perl5/perlbrew/etc/bashrc
[[email protected] build]# perlbrew install -n -j4 --threads perl-5.24.1
As opções que escolhemos para nossa instalação Perl são -
n - Sem testes
j4 - Execute 4 threads em paralelo para as rotinas de instalação (estamos usando uma CPU quadcore)
threads - Ativar suporte de threading para Perl
Depois que nossa instalação for executada com sucesso, vamos mudar para nosso mais novo ambiente Perl.
[[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]]#
Versão perl simples de impressão de script perl rodando dentro do contexto de nosso ambiente perlbrew -
[[email protected]]# cat ./ver.pl
#!/usr/bin/perl
print $^V . "\n";
[[email protected]]# perl ./ver.pl
v5.24.1
[[email protected]]#
Assim que o perl estiver instalado, podemos carregar os módulos cpan com o cpanm do perl brew -
[[email protected]]# perl-brew install-cpanm
Agora vamos usar o instalador cpanm para fazer o módulo LWP com nossa versão Perl atual de 5.24.1 em perl brew.
Step 1 - Mude para o contexto da nossa versão Perl atual.
[[email protected] ~]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1
Um sub-shell é iniciado com perl-5.24.1 como o perl ativado. Execute 'exit' para finalizá-lo.
[[email protected] ~]#
Step 2 - Instale o Módulo Perl do Agente do Usuário LWP.
[[email protected] ~]# ~/perl5/perlbrew/bin/cpanm -i LWP::UserAgent
Step 3 - Agora vamos testar nosso ambiente Perl com o novo 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] ~]#
Aí está! Perl Brew torna o isolamento de ambientes perl muito fácil e pode ser considerado uma prática recomendada conforme as coisas acontecem com o Perl.