2012-07-06 23 views
5

Seguí este helpful tutorial para obtener Perl instalado solo para mi usuario. Lamento vincularme a un sitio externo, pero creo que leer esta es la única forma de entender cómo responder la pregunta.Instalación de módulos CPAN sin raíz

anywho, me la alimentación de los valores predeterminados de la configuración CPAN - los .cpan y CPAN directorios creados a través de la guía de aprendizaje - pero por alguna razón CPAN todavía quiere excavar en /usr/lib/ - los que simplemente no puede llegar a - cuando intento instalar un modulo Esto fue durante la instalación de DBD::CSV.

Aquí está el mensaje de error:

All tests successful (7 subtests UNEXPECTEDLY SUCCEEDED), 3 tests skipped. 
Files=23, Tests=706, 3 wallclock secs (2.28 cusr + 0.54 csys = 2.82 CPU) 
/usr/bin/make test -- OK 
Running make install 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
ERROR: Can't create '/perl5lib/lib/Bundle/DBD' 
mkdir /perl5lib: Permission denied at /usr/lib/perl5/5.8.8/ExtUtils/Install.pm line 457 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
at -e line 1 
make: *** [pure_site_install] Error 13 
/usr/bin/make install -- NOT OK 

Se parece ir a la equivocada perl5lib.

Respuesta

5

Sí, locales :: lib ayuda. Sugiero usar cpanm en lugar de cpan. Creo que por defecto está instalando todo ~/perl5/lib/perl5. Aquí hay un super useful tutorial.

+0

Hola, gracias por la respuesta. Intenté instalar cpanm y requiere acceso a las carpetas de las que estoy restringido. Continuaré con la instalación de bootstrap de local :: lib, I spose. Pero me pregunto, ¿hay alguna manera de cambiar un env? variable con cpan regular de modo que no se vea en usr/lib? – PinkElephantsOnParade

+1

Sí, la variable de entorno ** PERL5LIB ** es lo que desea. –

0

¿configuró el myconfig.pm dentro de cpan en lugar de dejar que complete automáticamente todos los valores predeterminados? Durante la configuración de cpan, necesitó agregar PREFIX = "" para la parte Makefile.PL para que instale los módulos en esta nueva ubicación donde tiene acceso de escritura. Como ya está configurado automáticamente para usted, vaya a .cpan/CPAN /, busque un MyConfig.pm y edítelo. localice la línea "makepl_arg" y cambie el valor en [] para que contenga PREFIX = "". Luego pruebe el shell perl -MCPAN -e e instale un módulo.

5

local::lib hace que los instaladores utilicen INSTALL_BASE, lo que considero roto. Yo uso perlbrew para instalar una copia local de Perl.

  • No juegues con la instalación de Perl de tu sistema, para que no rompas el entorno operativo.
  • Le permite tener múltiples versiones y compilaciones de Perl instaladas sin complicaciones.
  • INSTALL_BASE no necesita ser utilizado.
  • No necesita permisos especiales.
Cuestiones relacionadas