venerdì 23 dicembre 2016

Perlbrew, cpanm e Module::Build

Dopo la migrazione da un computer ad un altro mi sono trovato con perlbrew e Perl 5 che non funzionavano come mi aspettavo.
Ad esempio per installare alcuni moduli mi veniva fornito un dubbioso messaggio di successo e di errore contemporaneo:

% cpanm Net::SCP
...
Successfully installed Net-SSH-0.09
...
Successfully installed String-ShellQuote-1.04
! Installing the dependencies failed: Module 'String::ShellQuote' is
not installed, Module 'Net::SSH' is not installed
! Bailing out the installation for Net-SCP-0.08.
2 distributions installed

Come si può vedere, mentre ad esempio Net::SSH risulta installato, poche righe dopo lo stesso modulo risulta assente.
Alla fine ho scoperto, quasi per caso l'arcano: avevo migrato anche una configurazione della shell che impostava due variabili di ambiente usate da Module::Build, e in particolare

PERL_MB_OPT="--install_base \"/home/luca/perl5\"";
PERL_MM_OPT="INSTALL_BASE=/home/luca/perl5";

Rimosse quelle variabili tutto ha ripreso a funzionare come dovuto. In sostanza cpanm installava i moduli in un percorso differente da quello usato per la costruzione dei moduli successivi.
Non si finisce mai di imparare.

Nessun commento: