Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Problemas con el módulo " DateTime " de Perl
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Dom Ago 27, 2006 6:15 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Problemas con el módulo " DateTime " de Perl Responder citando

Estimados Very Happy ,

Tengo problemas para instalar el módulo " DateTime " . Lo intenté instalar desde CPAN y bajando el archivo por FTP y luego instalarlo manualmente pero no me deja instalarlo porque el make test da errores.
¿ Qué puede ser lo que estoy haciendo mal ?
Estoy necesitando este módulo para colocarles la fecha actual de la PC a unos archivos que quiero subir por FTP para hacer el backup diario de los mismos.

Este es el error que me arroja al querer ejecutar el script que utiliza ese módulo. Sé que el error es debido a que estoy utilizando un módulo que no tengo instalado. El problema es que no me lo deja instalar. Embarassed

¿ Le pasó lo mismo a alguien ? Cool

¡¡ Saludos y muchas gracias !! Wink
Telco

Código:
[root@localhost ~]# perl FTP_script.pl
Can't locate DateTime/TimeZone.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/site_perl/5.8.5/DateTime.pm line 53.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.5/DateTime.pm line 53.
Compilation failed in require at FTP_script.pl line 7.
BEGIN failed--compilation aborted at FTP_script.pl line 7.
[root@localhost ~]#
Mensaje Dom Ago 27, 2006 6:27 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

El error es claro: no encuentra el módulo DateTime::TimeZone.

Es infinítamente mejor que intentes instalar cualquier módulo de esta manera:
Cita:
cpan DateTime
pues además de instalar el módulo, instalará todos los módulos de los que depende.
Mensaje Lun Ago 28, 2006 6:33 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Hola Explorer , Laughing

Muchas gracias por tu respuesta , seguí tus indicaciones ... pero mi script me sigue dando error porque no encuentra el módulo .


ERROR AL EJECUTAR EL SCRIPT :
Código:
[root@localhost ~]# perl FTP_script.pl
Can't locate DateTime/TimeZone.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-



Uso ese módulo solamente para colocarle la fecha a los archivos de mi script de backup de logs.
Les copio el script para que me indiquen si se puede realizar de otra forma sin utilizar este módulo.
Cómo lo ejecuto 2 veces al día me interese que los log´s comprimidos queden con la fecha en su nombre.


¡¡ Saludos y muchas gracias !! Very Happy
TELCO
Mensaje Lun Ago 28, 2006 7:58 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Código:
cpan DateTime::TimeZone
Mensaje Lun Ago 28, 2006 8:55 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Una llamada system dentro de Module/Build/Base.pm falla porque dice que está recibiendo demasiados parámetros en su ejecución. Pero parece que sólo falla en el momento del test.

Prueba a instalarlo con:
Cita:
cpan -fi DateTime::TimeZone


Eso también quiere decir que tienes una instalación Perl muy antigua o estás corriendo con un shell con limitación de ejecución muy fuertes. Repasa el ulimit de tu sistema.
Mensaje Lun Ago 28, 2006 9:23 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

¡¡ HI !! Very Happy

¿¿ Pasa lo mismo, necesito actualizar mi versión del Perl ??

Código:
[root@localhost ~]# cpan -fi DateTime::TimeZone
Unknown option: f
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Mon, 28 Aug 2006 03:32:36 GMT
Running install for module DateTime::TimeZone
Running make for D/DR/DROLSKY/DateTime-TimeZone-0.47.tar.gz
CPAN: Digest::MD5 loaded ok

[root@localhost ~]# ulimit
unlimited
[root@localhost ~]#



¡ Saludos y gracias ! Wink
TELCO
Mensaje Lun Ago 28, 2006 9:30 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1390
Ubicación: México
Responder citando

TELCO71 escribió:
HI !! Very Happy

Pasa lo mismo , necesito actualizar mi versión del PERL ??



Pues si no tienes la última versión de Perl, te conviene instalarla, pues así te aseguras de tener los menos bugs posibles. Muchas veces la reinstalación del Perl soluciona todo este tipo de errores.


Saludos
Mensaje Lun Ago 28, 2006 9:44 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Si tu cpan no entiende la opción -f, es que es casi del siglo pasado (del XX Smile )

Ultima edición por explorer el Jue Ago 07, 2008 12:20 pm, editado 1 vez
Mensaje Lun Ago 28, 2006 10:14 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimados ,

La versión que tengo es la siguiente :

Código:
[root@localhost ~]# perl -v

This is perl, v5.8.5 built for i386-linux-thread-multi

Copyright 1987-2004, Larry Wall


Tengo la distro de CentOS . ¿ Me recomiendan instalar la última versión ?
Desde donde la puedo bajar .

¡ Saludos y gracias !
Telco
Mensaje Lun Ago 28, 2006 10:40 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1390
Ubicación: México
Responder citando

Hola:

Pues si puedes instalar la nueva versión en nada te afecta. También como te comentaba te puede convenir pues puede ser que tengas algún archivo corrupto o mal copiado que es lo que genera el tipo de error que te están saliendo.

La última versión de Perl es la 5.8.8
http://www.perl.com/CPAN/src/stable.tar.gz

Saludos
Mensaje Lun Ago 28, 2006 10:46 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Uso los sistemas de administración de CentOS ANTES de instalar los programas a mano...

En tu caso, como es una distribución basada en Red Hat, será usando el yum.
Mensaje Lun Ago 28, 2006 12:21 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimados , Very Happy

Instalé la versión 5.8.8 a mano Wink
Ahora tengo las 2 versiones instaladas actualmente Embarassed .... ¿cómo puedo dejar la versión 5.8.8 como default ? La otra más vieja ¡¡ la tengo que desinstalar ??

Código:
[root@localhost ~]# perl5.8.8 -v

This is perl, v5.8.8 built for i686-linux

Copyright 1987-2006, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

[root@localhost ~]# perl -v

This is perl, v5.8.5 built for i386-linux-thread-multi

Copyright 1987-2004, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.

[root@localhost ~]#



¡¡ Saludos y muchas gracias !!
Telco Smile
Mensaje Lun Ago 28, 2006 12:35 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimado Explorer ,

¿ Se podría hacer lo que necesito sin utilizar el módulo " DateTime " ?
Yo en el script lo utilizo solo para colocarle la hora actual a los archivos al momento de zipearlos.
¿Cómo podría hacer para sacar la hora del sistema sin utilizar el módulo de " DateTime " que no puedo instalar Embarassed ?

Saludos Very Happy
Telco
Mensaje Lun Ago 28, 2006 12:48 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Perl:
explorer@next3:~> perl -le 'print join(":",(localtime)[2,1])'
20:44
Mensaje Lun Ago 28, 2006 12:57 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

¡¡¡ HI !!! Very Happy

¿Qué te parece este código, Explorer ??
Lo que quiero... es colocarle al archivo comprimido que genero la fecha actual para luego poder identificarlos más fácilmente.
¿ Me entiendes ? Si puedes corregirlo o mejorarlo desde ya te lo agradeceré mucho Very Happy

Perl:
#!/usr/bin/perl -w

use strict;
use Net::FTP;

no warnings;

my $USERNAME = "user";
my $PWD = "passw";
my $SERVER = "ip";
my $ARCHIVO = "LOGS";

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
 $year=$year+1900;
 $mon=$mon+1;
 $fecha="YMD_$year-$mon-$mday\_HM_$hour:$min";


system("/usr/bin/gzip /root/LOGS/*.log" $ARCHIVO_$fecha )


my $FTP = Net::FTP->new($SERVER) or die ("No se pudo conectar $!");
$FTP->login($USERNAME,$PWD) or die ("Login incorrecto: $!");
$FTP->cwd("/root/LOGS/");

    $FTP->put( *.gz );

$FTP->quit();



Saludos Wink
TELCO
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Ir a página 1, 2  Siguiente
Página 1 de 2



Powered by phpBB © 2001, 2005 phpBB Group