elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  CPAN Linux reinstalar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CPAN Linux reinstalar  (Leído 3,369 veces)
rusogumo

Desconectado Desconectado

Mensajes: 20


Ver Perfil
CPAN Linux reinstalar
« en: 9 Marzo 2015, 15:47 pm »

Hola buenos dias!

Tengo un Linux con distribución Debian. He ido instalando paquetes de cpan y modulos sin ton ni son (por ignorancia). Ahora tengo un problema bastante gordo ya que las versiones no coinciden y no me deja ni ejecutar el comando: cpan
He intentado borrarlo todo y reistalar perl y cpan pero no lo he conseguido reinstalar. Aunque instale el perl por defenco, cuando intento ejecutar cpan me dice q perl no esta instalado.

¿¿No se que hacer??? ¿¿Que me aconsejais???

Muchas gracias!!! =)


En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #1 en: 9 Marzo 2015, 17:06 pm »

Desde el synaptic o aptitude puedes solicitar la reinstalación del Perl del sistema.

Luego, con respecto al comando cpan, ejecútalo, y en su shell, ejecuta

o conf init

Con eso, se reiniciará la configuración de cpan.

Otra opción es no usar cpan, sino instalar cpanm (que es lo recomendado en los últimos tiempos). Lo haces con

apt-get install cpanminus


En línea

rusogumo

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #2 en: 10 Marzo 2015, 12:39 pm »

gracias... lo pruebo y te cuento =)
En línea

rusogumo

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #3 en: 7 Abril 2015, 12:39 pm »

He estao mirando tus comandos y con aptitude veo los modulos y paquetes perl pero no se muy bien que quieres que haga... ¿reintslar o borrar e instalar? ¿Todos los paquetes. solo los principales?
Por favor dame alguna nota mas para poder arreglar el perl.

Esto es lo q se muestra cuando intento ejecutar un script perl:

Código:
nagios@srvnagiosd:/usr/local/nagios/libexec$ ./check_cisco.pl
Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: /opt/oracle/instantclient_12_1/DBD-Oracle-1.74/lib/DBD/ /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at ./check_cisco.pl line 92.
BEGIN failed--compilation aborted at ./check_cisco.pl line 92.

root@srvnagiosd:/usr/local/nagios/libexec# ./check_cisco.pl
Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: /opt/oracle/instantclient_12_1/DBD-Oracle-1.74/lib/DBD/ /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at ./check_cisco.pl line 92.
BEGIN failed--compilation aborted at ./check_cisco.pl line 92.


PD: Gracias Explorer por tu tiempo y perdona por no probarlo antes. He estado liado con otros temas y lo tenía un poco abandonado el tema
En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #4 en: 7 Abril 2015, 14:23 pm »

Para comprobar que está bien instalado, ejecuta

Código:
$ perl -E 'use strict; say $INC{"strict.pm"}'
/usr/share/perl/5.18/strict.pm

strict.pm es un módulo que viene incluido en la propia distribución de Perl, así que se instala cuando se instala Perl (que es lo mismo que decir que cuando se instala el sistema).

El error que sale es porque Perl no lo encuentra. Es decir: que en cualquiera de las rutas indicadas por el array especial @INC, no lo encuentra.

Las rutas en las que busca ese módulo son las indicadas en el error, y que se pueden ver así:

Código:
$ perl -E 'say for @INC'
/opt/oracle/instantclient_12_1/DBD-Oracle-1.74/lib/DBD/
/etc/perl
/usr/local/lib/perl/5.18.2
/usr/local/share/perl/5.18.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.18
/usr/share/perl/5.18
/usr/local/lib/site_perl

En el ordenador donde estoy ahora, que también tiene Perl v5.18.2, las rutas son las mismas, y puedo localizar la posición de strict.pm:

Código:
$ locate strict.pm
/home/explorer/Documentos/Desarrollo/perl/lib/strict.pm
/home/explorer/Proyectos/perlspanish/old/perlspanish.5.16.2/perl/lib/strict.pm
/home/explorer/perl5/perlbrew/build/perl-5.20.0/lib/strict.pm
/home/explorer/perl5/perlbrew/perls/perl-5.20.0/lib/5.20.0/strict.pm
/usr/share/perl/5.18.2/strict.pm

De todas ellas, la original es la última, /usr/share/perl/5.18.2/strict.pm, y esa ruta sí que está en las incluidas de @INC, así que Perl en mi sistema sí que lo localiza.

Debes ver en qué parte del disco de tu ordenador está el strict.pm.

En línea

rusogumo

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #5 en: 9 Abril 2015, 12:51 pm »

He mirado los comandos que me has dicho... lo de las variables ya lo sabia.

Bueno vamos por partes. El problema lo tengo en dos maquinas Debian. En la segunda maquina las variables están bien configuradas, bueno no del todo. Cuando lo ejecuto como usuario nagios recibo esto:

Código:
nagios@srvsmc:~/libexec$ cpan
Can't locate strict.pm:   Permiso denegado at /usr/local/bin/cpan line 6.
BEGIN failed--compilation aborted at /usr/local/bin/cpan line 6.
nagios@srvsmc:~/libexec$ ls -la /usr/local/bin/cpan
-rwxr-xr-x 1 nagios nagios 5859 oct  8  2014 /usr/local/bin/cpan

y las respuestas a tus comandos son:

Código:
nagios@srvsmc:~/libexec$ perl -E 'use strict; say $INC{"strict.pm"}'
Can't locate feature.pm:   Permiso denegado.
BEGIN failed--compilation aborted.
nagios@srvsmc:~/libexec$ locate feature.pm
/usr/local/lib/perl5/5.18.1/feature.pm
/usr/share/perl/5.14.2/feature.pm
nagios@srvsmc:~/libexec$ ls -la /usr/local/lib/perl5/5.18.1/feature.pm
-rwxrwxrwx 1 nagios nagios 12174 oct  4  2013 /usr/local/lib/perl5/5.18.1/feature.pm
nagios@srvsmc:~/libexec$ ls -la /usr/share/perl/5.14.2/feature.pm
-rwxrwxrwx 1 nagios nagios 2592 feb  5  2014 /usr/share/perl/5.14.2/feature.pm
nagios@srvsmc:~/libexec$ perl -E 'say for @INC'
Can't locate feature.pm:   Permiso denegado.
BEGIN failed--compilation aborted.

Si lo ejecuto como root:

Código:
root@srvsmc:/usr/local/nagios/libexec# cpan
Perl lib version (5.14.2) doesn't match executable '/usr/local/bin/cpan' version (v5.18.1) at /usr/lib/perl/5.14.2/Config.pm line 60.
Compilation failed in require at /usr/local/lib/perl5/5.18.1/File/Find.pm line 1114.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.18.1/CPAN/CacheMgr.pm line 8.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.18.1/CPAN/CacheMgr.pm line 8.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.18.1/CPAN.pm line 22.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.18.1/CPAN.pm line 22.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.18.1/App/Cpan.pm line 219.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.18.1/App/Cpan.pm line 219.
Compilation failed in require at /usr/local/bin/cpan line 9.
BEGIN failed--compilation aborted at /usr/local/bin/cpan line 9.

y las respuestas a tus comandos son:

Código:
root@srvsmc:/usr/local/nagios/libexec#  perl -E 'use strict; say $INC{"strict.pm"}'
/usr/local/lib/perl5/5.18.1/strict.pm
root@srvsmc:/usr/local/nagios/libexec# perl -E 'say for @INC'
/opt/oracle/instantclient_12_1/DBD-Oracle-1.74/lib
/root/.cpan/build/DBD-Oracle-1.74-EpRUAi/lib
/usr/local/nagios/perl5/lib/perl5/
/root/.cpan/build/Test-WWW-Selenium-1.36-8WFC9m/blib/lib/
/root/.cpan/build/Test-WWW-Selenium-1.36-8WFC9m/lib/
/root/Selenium/Test-WWW-Selenium-1.36/blib/lib/
/root/Selenium/Test-WWW-Selenium-1.36/lib/
/usr/local/lib/perl5/site_perl/5.18.1/
/usr/local/lib/perl5/5.18.1/
/usr/share/perl/5.14.2/
/usr/local/lib/perl5/site_perl/5.18.1/Test/WWW/
/usr/lib/perl/5.14.2/
/usr/local/lib/perl5/5.18.1/x86_64-linux/
/root/.cpan/build/perl-5.20.0-c0aCWO/lib/
/usr/local/lib/perl5/site_perl/5.18.1/x86_64-linux
/usr/local/lib/perl5/site_perl/5.18.1
/usr/local/lib/perl5/5.18.1/x86_64-linux
/usr/local/lib/perl5/5.18.1
.

Según me has comentado y mas o menos ya sabia, cuando lo ejecuto como root parece que los paths incluidos en @INC concuerdan con la ubicación del archivo strict.pm

Esto es en una de las maquinas en las que tengo el problema del perl-cpan. Este servidor es de producción y las modificaciones se deben hacer con mucho cuidado.

En la otra maquina es la de desarrollo y con la que hago mis experimentos (la maquina con la que empezamos el post) En esta maquina la situación a cambiado drásticamente  desde que probe "aptitude" jajajajajjajajajjajaja
Ha sido un exterminio, borre todo menos el perl-base... Pero ahora no me deja ni loguearme mediante ssh O.O

¿Que me aconsejas para proceder con las 2 maquinas?
En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #6 en: 9 Abril 2015, 17:17 pm »

1- No se te ocurra ejecutar el comando cpan salvo que seas el usuario root
2- Antes de instalar algo con cpan, ejecuta el aptitude para ver si lo que quieres instalar ya estaba paquetizado (también como root, claro)

Si te dice que un usuario normal no puede acceder a feature.pm, significa que el directorio donde está ese módulo no es accesible a ese usuario, seguramente por temas de permisos.

/usr/local/lib/perl5/5.18.1/feature.pm
/usr/share/perl/5.14.2/feature.pm

Esto muestra que... ¡desastre! tienes dos Perl instalados. El v5.14.2 y el v5.18.1.

Destrucción, caos, hambre, plagas y demás serán minucias con lo que pasará en esa máquina.

Mira, mira. El propio Perl te lo dice:

root@srvsmc:/usr/local/nagios/libexec# cpan
Perl lib version (5.14.2) doesn't match executable '/usr/local/bin/cpan' version (v5.18.1) at /usr/lib/perl/5.14.2/Config.pm line 60.
root@srvsmc:/usr/local/nagios/libexec#  perl -E 'use strict; say $INC{"strict.pm"}'
/usr/local/lib/perl5/5.18.1/strict.pm

Estas líneas demuestran que el -primer- perl que se encuentra en la ruta del $PATH es el v5.14.2, pero las primeras bibliotecas que encuentra son las del v5.18.1.

Esto es algo así como tener el Java de Oracle y el OpenJDK instalados a la vez: diversión asegurada :D

Mi recomendación es... reinstalar todo el sistema.

La otra opción es... entrar con bisturí y fórceps y expulsar el Perl invasor (en tu caso, el v5.18.1). Y sin garantías de supervivencia del paciente.

Yo suelo realizar este tipo de operaciones a CPU abierta (sistemas de producción que no pueden parar), así que si necesitáis ayuda profesional, pues aquí estamos.
En línea

rusogumo

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #7 en: 10 Abril 2015, 15:00 pm »

¡¡¡Madre mía que dramón!!!! Me acabas de hundir en la miseria.
Las risas aseguradas van a venir cuando le diga a mi jefe que hay que reinstalarlo todo  :laugh: :xD  ;D

Pues si que voy a necesitar tu ayuda pero hoy viernes mal día para entrar a matar.

El Lunes te escribo y vemos como proceder con los pacientes. En la de desarrollo me da igual cepillarme lo todo, pero en producción me gustaría solucionarlo sin tener que reinstalar .

Muchas gracias y que tengas un buen fin de semana.
En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: CPAN Linux reinstalar
« Respuesta #8 en: 10 Abril 2015, 15:30 pm »

El Perl oficial es el v5.14.2, ese es el que hay que salvar.

El que sea más o menos fácil quitar el v5.18.1 depende de cómo haya sido instalado. Como veo que está en /usr/local... puede que sea muy fácil, con solo cambiar de nombre o eliminar los directorios del v5.18.1.

Una vez hecho eso, entrar en aptitude y solicitar la reinstalación de perl y perl-base.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[perl] como instalo cpan?
Scripting
morenochico 6 5,104 Último mensaje 9 Junio 2011, 20:22 pm
por morenochico
Reinstalar SMF
Desarrollo Web
dazet 1 2,018 Último mensaje 6 Febrero 2012, 18:59 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines