¿Por qué no va a ser reconocido cpanm` un módulo instalado por `?
Pregunta
He instalado Perl 5.12.2 utilizando perlbrew
:
perlbrew install perl-5.12.2 -D=usethreads -D=useithreads -D=uselargefiles -f
luego cambió a esta versión y IPC::System::Simple
instala mediante cpanm
.
Sin embargo, cuando trato de ejecutar mi script me sale:
Can't locate IPC/System/Simple.pm in @INC (@INC contains: /home/dave/workspace/proj1/scripts/bin/../lib /home/dave/src/bioperl-live /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2/x86_64-linux-thread-multi /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2 /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/5.12.2/x86_64-linux-thread-multi /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/5.12.2 .) at /home/dave/workspace/proj1/scripts/bin/../lib/createLayout.pm line 14.
También se encontró el siguiente directorio:
~/perl5/lib/perl5/x86_64-linux-thread-multi/auto/IPC/System/Simple
pero está vacía (no tengo ni idea de si esto significa algo).
Solución
¿Qué which cpanm
de la serie de línea de comandos? Para que se debería informar:
/home/dave/perl5/perlbrew/bin/cpanm
Si eso es bien entonces ¿Qué muestra ls -l /home/dave/perl5/perlbrew/bin/cpanm
? Se debe apuntar a:
cpanm -> /home/dave/perl5/perlbrew/perls/current/bin/cpanm
Y, por último ls -l /Users/barry/perl5/perlbrew/perls/current
debe estar apuntando hacia el Perl que haya cambiado en el perlbrew
:
/home/dave/perl5/perlbrew/perls/current -> perl-5.12.2
Los tres de éstos debe ser como esto de otra manera algo está mal.
Si no es entonces un problema probable es que cpanm
está apuntando a otro Perl instalado. Es necesario tener cpanm
instalado para cada versión de Perl bajo perlbrew
:
perlbrew switch perl-5.12.2
curl -L http://cpanmin.us | perl - App::cpanminus
Ahora bien, si which cpanm
todavía no muestra la ruta perlbrew
entonces usted tiene un problema de precedencia $PATH
en su .bash_profile
(o equivalente) de archivos. Esto se puede solucionar por asegurarse de que su perlbrew
línea ...
source /home/dave/perl5/perlbrew/etc/bashrc
... en el archivo de perfil es después de cualquier otra línea export $PATH
.
Después de volver re-inicio de sesión en el que puede confirmar que esto es lo correcto por hacer echo $PATH
y debería ver perlbrew
al principio (a la izquierda) de la cadena de ruta, es decir. algo como esto:
/home/dave/perl5/perlbrew/bin:/home/dave/perl5/perlbrew/perls/current/bin:/usr/bin:/bin:/usr/local/bin:
Otros consejos
Trate esta guía paso a paso , prestando mucha atención a los pasos 7 y 8 (y opcionalmente 9).