Saltar al contenido

¿Cómo puedo usar CPAN como usuario no root?

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
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *