segunda-feira, 1 de agosto de 2016

Perl - local::lib com cpanminus


Instalando o local::lib com cpanminus


Considerações antes de começar:

1. Esse é um relato de uma instalação do local::lib a partir de um Ubuntu 16.04, e eu realmente não estou preocupado se você está usando outra distro. Caso você esteja usando outra distro 'não filhote de Debian', esse tutorial ainda pode ser útil desde que você deixe essas bobagens de lado;

2. Você instalou local::lib e nada funcionou? Ótimo! Está no lugar certo!


Testando o local::lib



Se a sua instalação do local::lib não estiver 'ok', ou se você simplesmente ainda não instalou, execute



$ perl -e 'use local::lib'

Dependendo da versão de Perl/CPAN você verá a seguinte mensagem(mas não tem problema se você não estiver vendo isso! Meramente 'ilustrativo')





!
! Can't write to /usr/local/share/perl/5.22.1 and /usr/local/bin: Installing modules to $HOME/perl5
! To turn off this warning, you have to do one of the following:
!   - run me as a root or with --sudo option (to install to /usr/local/share/perl/5.22.1 and /usr/local/bin)
!   - Configure local::lib in your existing shell to set PERL_MM_OPT etc.
!   - Install local::lib by running the following commands
!
!         cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
!





Nesse caso, instale o cpanminus executando o comando abaixo:
$ sudo apt-get install cpanminus
Após instalar o cpanminus, execute:


$ cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)





Agora, abra outro terminal, e execute:




$ env |grep PERL
PERL5LIB=$HOME/perl5/lib/perl5
PERL_MB_OPT=--install_base "$HOME/perl5"
PERL_LOCAL_LIB_ROOT=$HOME/perl5
PERL_MM_OPT=INSTALL_BASE=$HOME/perl5




Se o resultado for parecido com isso, provavelmente funcionou! Para ter certeza, apenas instale algum módulo sem o 'sudo' e verifique se o 'use Modulo::TeoricamenteInstalado' está ok. Se estiver, agora você tem local::lib instalado perfeitamente.

Caso contrário, exporte as variáveis manualmente e salve no seu .bashrc(se estiver usando bash), assim:



$ echo "export PERL5LIB=\"$HOME/perl5/lib/perl5\"">>~/.bashrc && \
echo "export PERL_MB_OPT=\"--install_base '$HOME/perl5'\">>~/.bashrc && \
echo "export PERL_LOCAL_LIB_ROOT=$HOME/perl5">>~/.bashrc \
source ~/.bashrc


Então instale seu módulo novamente e teste novamente.

Fim