• Publicidad

Problemas al usar módulos SFTP Y SSH

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

Problemas al usar módulos SFTP Y SSH

Notapor javierg » 2007-01-08 09:47 @449

Buenas otra vez. Lo del módulo Telnet Solucionado.
Problema que tengo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use lib('/usr/perl5/5.6.1/lib/Net/SSH');
use Net::SFTP;
use Net::SSH::Perl;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


también he probado con

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use lib('/usr/perl5/5.6.1/lib');
use Net::SFTP;
use Net::SSH::Perl;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Estoy actualizando las versiones Net::SFTP y Net::SSH::Perl, ambas de un tal David Robin.

Cuando ejecuta el script:

Código: Seleccionar todo
# ./hpov.pl
Can't locate Net/SSH/Perl/Buffer.pm in @INC (@INC contains: /usr/perl5/5.6.1/lib/Net/SSH /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 .) at /usr/perl5/5.6.1/lib/Net/SFTP/Buffer.pm line 6.
BEGIN failed--compilation aborted at /usr/perl5/5.6.1/lib/Net/SFTP/Buffer.pm line 6.
Compilation failed in require at /usr/perl5/5.6.1/lib/Net/SFTP/Attributes.pm line 7.
BEGIN failed--compilation aborted at /usr/perl5/5.6.1/lib/Net/SFTP/Attributes.pm line 7.
Compilation failed in require at /usr/perl5/5.6.1/lib/Net/SFTP.pm line 8.
BEGIN failed--compilation aborted at /usr/perl5/5.6.1/lib/Net/SFTP.pm line 8.
Compilation failed in require at ./hpov.pl line 18.
BEGIN failed--compilation aborted at ./hpov.pl line 18.


Código: Seleccionar todo
# ls -l
total 28
-rw-r--r--   1 root     other       4358 Jul  7 01:46 Attributes.pm
-rw-r--r--   1 root     other       2514 Jul  7 01:46 Buffer.pm
-rw-r--r--   1 root     other       4072 Jul  7 01:46 Constants.pm
-rw-r--r--   1 root     other       1439 Jul  7 01:46 Util.pm
# pwd
/usr/lib/Net-SFTP-0.10/lib/Net/SFT

Código: Seleccionar todo
-rw-r--r--   1 root     other       9724 Jul 10 05:24 Buffer.pm
# pwd
/usr/lib/Net-SFTP-0.10/lib/Net/SSH/Perl


Los datos que me dicen que faltan aparecen, como veis escrito

¿¿ qué puede ser ??
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Publicidad

Notapor javierg » 2007-01-08 10:10 @465

Después de añadir un fichero .pm que he visto que me faltaba, ahora me aparece, además de los errores anteriores, lo siguiente:

Código: Seleccionar todo
Can't locate Math/Pari.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 .) at /usr/perl5/5.6.1/lib/Net/SSH/Perl/Util/SSH2MP.pm line 6.
BEGIN failed--compilation aborted at /usr/perl5/5.6.1/lib/Net/SSH/Perl/Util/SSH2MP.pm line 6.
Compilation failed in require at /usr/perl5/5.6.1/lib/Net/SSH/Perl/Util.pm line 56.


Me vuelvo loco, ¿qué puedo hacer?
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Notapor explorer » 2007-01-08 10:46 @490

A ver... hay que entender algunos conceptos...

* @INC es el array donde se almacenan los caminos del sistema de ficheros donde Perl va a ir a buscar los módulos que necesita

* use lib sirve para agregar un nuevo directorio a la lista de @INC

* Si necesitamos usar el módulo Net::SSH::Perl, Perl intentará buscar un fichero llamado Perl.pm dentro de un directorio Net/SSH/ que además estará dentro de alguno de los directorios indicados por @INC

Entonces, del primer error que te sale:

Can't locate Net/SSH/Perl/Buffer.pm

quiere decir que no encuentra el fichero Net/SSH/Perl/Buffer.pm dentro de alguno de los directorios de @INC.

Como muestras más adelante, Buffer.pm lo tienes instalado en /usr/lib/Net-SFTP-0.10/Net/SSH/Perl y ese directorio no está en @INC.

Tienes entonces dos opciones:
1.- Agregas /usr/lib/Net-SFTP-0.10/Net/SSH/Perl a @INC con la ayuda de use lib.
Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use lib '/usr/lib/Net-SFTP-0.10';
use Net::SSH::Perl;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

2.- (la preferida) instalas Net::SSH::Perl dentro de alguno de los directorios de @INC.
Por ejemplo, para que Perl pueda encontrar el módulo Net::SSH::Perl, mueves el directorio Net/SSH/Perl dentro de /usr/perl5/5.6.1/lib, con lo que quedará:
Código: Seleccionar todo
# pwd
/usr/perl5/5.6.1/lib/Net/SSH/Perl
# ls -l
-rw-r--r--   1 root     other       9724 Jul 10 05:24 Buffer.pm
y a partir de ese momento podremos hacer use Net::SSH::Perl; sin tener que usar use lib.

En cuanto al segundo mensaje, el error es claro: te hace falta instalar el módulo Math::Pari, porque Perl no lo encuentra.
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-08 21:20 @930

¿Cúal qe el problema con usar CPAN?
Código: Seleccionar todo
bash-3.1$ cpan -i Net::SFTP

:?:
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-09 03:39 @194

El problema se resolvio.
Por lo que he deducido, para usar el modulo DE SFTP he tenido que usar lo siguiente:
use Net::SSH::Perl;
use Net::SFTP;
use Math::Pari ();
sin embargo con el modulo Math::Pari me da el siguiente error

Can't locate loadable object for module Math::Pari 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 .) at /usr/perl5/5.6.1/lib/Net/SSH/Perl/Util/SSH2MP.pm line 6
Compilation failed in require at /usr/perl5/5.6.1/lib/Net/SSH/Perl/Util/SSH2MP.pm line 6.

¿¿ sabeis por que peude se r??
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268

Notapor javierg » 2007-01-09 03:48 @200

se me olvidaba, ya copie .../lib/Math/Pari.pm . que es el error que me daba cuando no tenia copiado el modulo
javierg
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-10-17 05:26 @268


Volver a Básico

¿Quién está conectado?

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