Perl cada vez mais fácil
A minha diversão remunerada favorita é programar em Modern::Perl, algo que a cada dia fica ainda mais divertido e simples.
Uma das facilidades das quais estou tirando proveito hoje é o App::cpanminus do Miyagawa. Esse aplicativo foi criado para facilitar a instalação de módulos em ambientes com restrições de recursos, portanto ele não possui muitas dependências e tem um baixo footprint.
Em alguns posts antigos eu mostrei como configurar o aplicativo cpan, instalar módulos no home do usuário e criar um mini mirror local com CPAN::mini, então como aquecimento para o Equinócio que se aproxima eu vou atualizar esses tutoriais tornando os posts anteriores obsoletos.
Para contextualizar os novos leitores vamos a um rápido overview das ferramentas abordadas:
- cpanm e cpanm: são aplicativos que automatizam a instalação de módulos Perl publicados no repositório www.cpan.org.
- www.cpan.org: É o repositório de módulos Perl onde podemos encontrar (hoje) cerca de 89768 módulos escritos por cerca de 8734 autores, para as mais diversas finalidades. Frequentemente alternamos o significado da palavra cpan entre “o repositório da web” e o “aplicativo de instalação de módulos”.
- local::lib: é um módulo (ou biblioteca) que facilita a instalação de outros módulos em diretórios que não os da instalação padrão, o que é útil quando você não possui privilégios administrativos e precisa de alguns módulos extras.
- CPAN::Mini: é outro módulo que permite a criação de um mini repositório local com a última versão de cada módulo do cpan. Isso é muito útil quando você precisa instalar módulos em um ambiente que não possui acesso à internet.
Mão na massa
Bom o primeiro passo agora, ao invés de configurar o aplicativo cpan é baixar e instalar o cpanm. Quando essa etapa é feita em conjunto com o sudo, o cpanm é instalando na árvore padrão de instalação do Perl. Para instalar no seu home basta executar:
curl -L http://cpanmin.us | perl - App::cpanminus
Entretanto isso ainda não configurou o seu ambiente. O cpanm foi instalado em $HOME/perl5/bin, mas seu $PATH, as variáveis de ambiente e o local::lib ainda não estão prontas.
Para instalar o módulo local::lib faça:
$HOME/perl5/bin/cpanm local::lib
Especificar o caminho completo é necessário porque ainda não adicionamos o diretório de instalação local na variável de ambiente $PATH. Para fazer isso executamos:
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >> ~/.bashrc
Nota: No Mac o arquivo é o .profile ao invés do .bashrc.
Isso faz com que a cada login, o ambiente pergunte ao módulo local::lib onde estão os outros módulos. Note que desta vez não precisamos exportar a variável PERL_MM_USE_DEFAULT porque o cpanm resolve as dependências de uma forma um pouco mais esperta que o seu irmão mais velho.
Para finalizar esta etapa, feche o terminal e abra novamente para carregar as variáveis ou execute:
. ~/.bashrcAgora, se você quiser configurar o mini repositório, os passos são os mesmos:
- Instalar o módulo CPAN::Mini;
- Criar o arquivo de configuração para ele;
- Executar o comando minicpan;
A instalação pode ser feita com o comando:
cpanm CPAN::Mini
O arquivo de configuração (~/.minicpanrc) pode ser criado com o conteúdo:
local: ~/minicpan remote: http://www.cpan.org
Daí é só executar o comando minicpan e esperar o repositório ser baixado (aproximadamente 1.5 GB).
Para que o cpanm aponte para o repositório local você deve invocá-lo passando com o seguinte parâmetro extra:
cpanm --mirror ~/minicpan --mirror-only
Ou para maior conveniência criar um alias:
echo "alias cpanmm='cpanm --mirror ~/minicpan --mirror-only'" >> ~/.bashrc
Após recarregar o .bashrc você terá disponíveis os comandos cpanm que baixa os módulos diretamente da internet e o cpanmm que instala os módulos a partir do seu repositório local.
Não se esqueça de executar o comando minicpan pelo menos uma vez por semana para manter o seu repositório local atualizado.
Referências:
Comments
-
http://blog.blabos.org/2010/02/criando-um-mini-mirror-do-cpan-com-o-cpanmini/ Criando um mini-mirror do cpan com o CPAN::Mini : Blog do Blabos de Blebe
-
http://blog.blabos.org/2009/08/instalando-modulos-do-cpan-via-locallib/ Instalando módulos do CPAN via local::lib : Blog do Blabos de Blebe
-
B O

