• Publicidad

Módulos instalados en Perl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Módulos instalados en Perl

Notapor javierg » 2007-01-04 05:23 @266

Buenas, estaba buscando por el foro a ver si alguien preguntaba de qué modo se ven todos los módulos instalados en Perl, pero no veo nada.

En especial quiero ver si tengo instalado el modulo para conectarme vía ssh a otra máquina.

Por un comentario de explorer del día 15 de febrero del 2006, ponía que el modulo es NET::SSH.

¿¿ Cómo veo si tengo instalado ese módulo ??

gracias
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Publicidad

Notapor monoswim » 2007-01-04 07:01 @334

En que sistema operativo estás ? o es un hosting pago ?

en los hostings suele haber un panel de control que te dice que módulos de perl tenés instalado...

Si es en windows te fijas con el PPM (perl package manager) y en linux yo lo hago con el YUM (centos)

Espero que te sirva

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor explorer » 2007-01-04 08:35 @399

Para saber si un módulo está instalado, ejecuta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
perl -MNet::SSH -e 1
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Si te da algún error, es que no está instalado.
Última edición por explorer el 2007-01-04 10:37 @484, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor javierg » 2007-01-04 09:38 @443

Muy buenas, acabo de teclearlo y efectivamente, error

Código: Seleccionar todo
# perl -MNet::SSH -e 1
Can't locate Net/SSH.pm in @INC (@INC contains: /usr/perl5/5.6.1/lib/sun4-solaris-64int /usr/perl5/5.6.1/lib /usr/perl5/site_perl/5.6.1/sun4-solaris-64int /usr/perl5/site_perl/5.6.1 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.6.1/sun4-solaris-64int /usr/perl5/vendor_perl/5.6.1 /usr/perl5/vendor_perl .).
BEGIN failed--compilation aborted.


El problema que tengo es que la máquina no es mía, si no de un cliente, por lo que no puedo instalar nada. Eso sí, necesito conectarme vía ssh.
¿¿¿ Tengo alguna alternativa ???
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Notapor creating021 » 2007-01-04 09:56 @455

Sí, si hay.
http://perlenespanol.com/tutoriales/mod ... talar.html

¿Cómo puedes saber si X módulo está instalado mirándolo desde tu script?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
eval "use Net::SSH;";
if($@){
  die "El módulo no está instalado o algo más está pasando\n";
}
else {
  require Net::SSH;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Otra forma de saberlo es usar @INC y buscar en los sitios dados por este.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2007-01-04 10:41 @487

Si no puedes instalar nada, no es un problema de Perl, sino del cliente.

Es un tema de concepto muy claro:

si DEBES usar el protocolo ssh, Y
la máquina (el sistema operativo) del cliente NO lo trae, deducimos que:
es necesario instalar ALGO.

Si no se puede, se le dice al cliente, tranquilamente, que no es posible hacer nada con ese sistema operativo, y que ponga otro más moderno que sí lo traiga. Un Linux, por ejemplo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor javierg » 2007-01-04 10:47 @491

Buenas, acabo de ejecutarlo y me ha dado como resultado
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
die "El módulo no está instalado o algo más está pasando\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Supongo que eso querrá decir que el modulo no esta instalado

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
eval "use Net::SSH;";
if($@){
  die "El módulo no está instalado o algo más está pasando\n";
}
else {
  require Net::SSH;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Lo que no entiendo es cómo utiliza el require ( imagino que es módulo a utilizar sin que esté instalado ), ya que conforme esta en el código, el programa muere en el die.

He probado a utilizar dejando solo el require, pero tampoco funciona.
¿¿ Me puedes comentar como empezarais tu ??

Por cierto Explorer, es un Solaris 10. Si tiene ssh, de hecho se utiliza.
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Notapor explorer » 2007-01-04 11:06 @504

Yo empezaría leyendo el manual que te ha indicado creating021.

Si no lo tienes instalado, da igual lo que hagas, que no funcionará.

En el tutorial te explica que lo que debes hacer es una instalación en el mismo directorio (o donde puedas) de ese módulo y luego usar 'use lib' para indicar dónde está.

Pero te advierto de una pequeña dificultad añadida: Net::SSH depende de un MONTÓN de módulos que también deberás instalar.

Quizás si nos explicas lo que necesitas hacer te podamos ayudar de otra manera.

Si tienes el Solaris 10, dile al administrador de la máquina que ejecute cpan Net::SSH, a ver qué pasa.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2007-01-04 12:49 @576

Yo tenía entendido que Net::SSH usa IPC::Open2, IPC::Open3 y el comando ssh.

Pero, veamo, hay un truco que puede ayudar:

Sí estás en un Unix (su máquina) puede usar el comando pp de PAR::Packer y hacer un elf32 y pasarlo al cliente y usar unzip para extraer el contenido del elf esto crea algunas carpetas y en una de ellas están todas las dependencias así que puedes usar el use lib... pero hay un problema y es que si este módulo usa algo en C/C++ y lo compila en elf de Linux no podrás usarlo (creo que lx no funcionaría en este caso)
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor javierg » 2007-01-05 05:04 @252

Buenas otra vez. Al final me he decantado por utilizar el módulo sin instalar. He comprobado y casualidad de la vida, que sí puedo acceder vía telnet. He comprobado que el módulo no está instalado.

Desde la página que me comentabais en otros comentarios de cómo utilizar los módulos sin instalarlos, he seguido los pasos que comentaba.
Además, mirando un comentario de "kidd".

"Por ejemplo, puedes crear una carpeta lib en el root del sitio y poner ahí el módulo, solamente cópialo de tu librería de ActivePerl de tu computadora, y ya con use lib(); puedes decirle a Perl que busque en esa carpeta los módulos."

Pasos realizados:
1- Me he descargado de la web el módulo Net-Telnet-3.03
2- Lo he copiado en /lib. El módulo Telnet.pm esta exactamente en
/usr/perl5/5.6.1/lib/Net-Telnet-3.03/lib/Net/Telnet.pm

3- he tecleado lo siguiente pero no ha funcionado nada

Código: Seleccionar todo
      use lib('Net-Telnet-3.03/lib');
      use lib('Net-Telnet-3.03/lib');
      use Telnet.pm;
     [b]Error: syntax error at ./hpov.pl line 20, near "use Telnet."
Execution of ./hpov.pl aborted due to compilation errors.[/b]      ******************************
     use lib('Telnet.pm/usr/perl5/5.6.1/lib/Net-Telnet-3.03/lib/Net');
     use lib('Telnet.pm/usr/perl5/5.6.1/lib/Net-Telnet-3.03/lib/Net');
     use Telnet.pm
    [b]Error: syntax error at ./hpov.pl line 20, near "use Telnet."
Execution of ./hpov.pl aborted due to compilation errors.[/b]     ************************************************
    use lib('Telnet.pm/usr/perl5/5.6.1/lib/Net-Telnet-3.03/lib/Net');
    use lib('Telnet.pm/usr/perl5/5.6.1/lib/Net-Telnet-3.03/lib/Net');
    use Net::Telnet;
   [b]Error: Modulo no encontrado[/b]
    *********************************


Supongo que ya estaré cerca de encontrar la solución.
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados

cron