Solución:
El método más fácil que he encontrado hasta ahora es decir
wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
Esto supone que su perfil se llama .profile
, es posible que deba cambiar eso para que sea .bash_profile
, .bashrc
, etc. Después de eso, puede instalar módulos diciendo
cpanm Module::Name
y simplemente utilícelos de la misma manera que lo haría si estuvieran instalados en los directorios raíz.
Lo que sigue es una breve explicación de lo que hacen los comandos anteriores.
wget -O- http://cpanmin.us
obtiene la última versión de cpanm
y lo imprime a STDOUT
que luego se canaliza a perl - -l ~/perl5 App::cpanminus local::lib
. El primero -
dice perl
esperar que el programa entre en STDIN
, Esto hace perl
ejecutar la versión de cpanm
que acabamos de descargar. perl
pasa el resto de los argumentos a cpanm
. los -l ~/perl5
el argumento dice cpanm
dónde instalar los módulos Perl, y los otros dos argumentos son dos módulos para instalar. [App::cpanmins
]1 es el paquete que se instala cpanm
. local::lib
es un módulo auxiliar que administra las variables de entorno necesarias para ejecutar módulos en el directorio local.
Una vez instalados esos módulos, ejecutamos
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
para configurar las variables de entorno necesarias para usar los módulos locales y luego
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
para asegurarnos de que podremos usarlos la próxima vez que iniciemos sesión.
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
con suerte hará que el hombre encuentre las páginas de manual para sus módulos locales.
http://web.archive.org/web/20120427144232/http://perl.jonallen.info/writing/articles/install-perl-modules-without-root
http://novosial.org/perl/life-with-cpan/non-root/
El paso principal en ambos conjuntos de instrucciones involucra el módulo local :: lib
AFAIK, la lógica CPAN está contenida en el módulo Perl (CPAN.pm) lo que significa que también puede instalar fácilmente el más nuevo en su directorio local como lo haría con cualquier otro módulo Perl.
Además, una vez que instale sus módulos en una ubicación no estándar, consulte estas dos preguntas sobre la carga de bibliotecas desde ubicaciones no estándar (parte de la información ya está disponible en el enlace anterior):
¿Cómo sabe un programa Perl dónde encontrar el archivo que contiene el módulo Perl que utiliza?
¿Cómo se construye el @INC de Perl? (también conocido como ¿Cuáles son todas las formas de afectar dónde se buscan los módulos Perl?)
Para completar, este es el proceso de instalación de cpanm
en OSX si desea mantener su perl5
debajo ~/Library
.
curl -L http://cpanmin.us | perl - -l ~/Library/perl5 App::cpanminus local::lib
eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`
echo 'eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`' >> ~/.bash_profile