6jun/112
Perl e módulos na $HOME
Mas, por quê?!
Qual o sentido de alguém instalar os módulos dentro do seu $HOME? Normalmente, uma das duas:
- Você não tem permissão suficiente para instalar no próprio sistema (você está mexendo num servidor ou coisa do tipo);
- Você está desenvolvendo a bagaça, e quer manter a versão bleeding edge só para você.
Bom, se for o 2-o caso, existe o tal do perlbrew.
Mas eu gosto das instalações locais e as uso desde '97. E o local::lib foi uma mão na roda e tanto! Então, vamos lá:
Passo-a-passo:
Download do local::lib:
curl -LO http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz tar xzf local-lib-1.008004.tar.gz cd local-lib-1.008004/
Instalação do local::lib:
perl Makefile.PL --bootstrap=$HOME/perl5 make make test make install
Ativando local::lib na inicialização da shell (Bash):
cat << PROFILE >> $HOME/.profile export PERL_MM_USE_DEFAULT=1 eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib) PROFILE
Agora, é hora de logoff/logon para quem está acostumado com o Windows, ou então:
. $HOME/.profile
Prosseguindo com a configuração/teste do CPAN (essa configuração faz as dependências serem instaladas automaticamente):
cpan cpan[1]> o conf prerequisites_policy follow cpan[2]> o conf commit cpan[3]> install App::cpanminus cpan[4]> quit
Enumerando os módulos instalados:
perl -MExtUtils::Installed -E 'chdir $ENV{PERL_LOCAL_LIB_ROOT}; my $i = new ExtUtils::Installed; say for $i->modules'
cpanminus permite atualizar todos de uma vez, de uma maneira eficiente:
perl -MExtUtils::Installed -E 'chdir $ENV{PERL_LOCAL_LIB_ROOT}; my $i = new ExtUtils::Installed; say for $i->modules' | cpanm


junho 20th, 2011 - 17:14
Para atualizar os módulos, recomendo instalar o cpan-outdated[1] e fazer simplesmente:
cpan-outdated | cpanm
[1] http://search.cpan.org/~tokuhirom/App-cpanoutdated-0.16/bin/cpan-outdated
junho 20th, 2011 - 17:27
É mais completo, inclusive, pois (pelo que vi) contempla os módulos instalados no sistema! Muito boa, valeu