• Publicidad

Utilidad de los módulos preinstalados de Perl

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

Utilidad de los módulos preinstalados de Perl

Notapor ManuelPerl » 2011-06-26 05:04 @253

Mi primera pregunta es si con los módulos que trae perl ya instalados en la distribución de Perl, se puede hacer todo, aunque sea de nuevo, sin necesidad de recurrir al CPAN. Ya he tenido mi primer problema con Perl: he intentado instalar el módulo Image::Grab en ActivePerl y en Stramberry en Windows, y también lo he intentado con el Perl que trae Ubuntu, y no lo he podido conseguir. He intentado de mil maneras, pero siempre da un error al final y eso que he instalado todas las dependencias que vienen en el cpan una por una. Eso me ha defraudado un poco, por eso mi pregunta de si se puede hacer lo mismo que hace Image::Grab creándolo desde cero con los módulos estándar de Perl, o a la fuerza tengo que usar el CPAN.

Gracias.
ManuelPerl
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2011-06-21 16:23 @724

Publicidad

Re: Utilidad de los módulos preinstalados de Perl

Notapor explorer » 2011-06-26 06:19 @305

Bienvenido a los foros de Perl en español, ManuelPerl.

No todo se puede hacer con los módulos que traen con la distribución básica. Hay módulos que dependen de librerías externas, que solo están disponibles en la propia distribución del módulo, y que al instalarlo hay que compilarlas (en el caso de la distribución ActivePerl, no es así, porque los Windows, por defecto, no traen compilador, por lo que los ficheros PPM ya bajan compilados. En Stramberry trae su propio compilador).

En el caso del módulo Image::Grab, sus dependencias no son muchas:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. WriteMakefile(
  2.     'NAME'      => 'Image::Grab',
  3.     'VERSION_FROM' => 'lib/Image/Grab.pm',
  4.     'PREREQ_PM' => {Digest::MD5 => 2.07,
  5.                     HTML::TreeBuilder => 0.51,
  6.                     HTTP::Cookies => 0,
  7.                     HTML::HeadParser => 0, # From libwww-perl
  8.                     URI::URL => 1, # From libwww-perl
  9.                     LWP::UserAgent => 0,
  10.                    },
  11.     dist        => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
  12. );
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
(sacado del Makefile.PL)

Habría que ver si todos los módulos de los que depende ya están en la distribución básica, pero si no, deberían ser muy fáciles de instalar (por ejemplo, usando el PPM gráfico).

En trouchelle.com tienen que el resultado de la instalación ha fallado, pero es en uno de los test de prueba.

Yo también me lo he instalado y ha dado un error parecido (estoy en un OpenSuSE Linux):
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
casa:/usr/bin # cpanp install Image::Grab
[MSG] Checking if source files are up to date
[MSG] No '/root/.cpanplus/custom-sources' dir, skipping custom sources
[MSG] No '/root/.cpanplus/custom-sources' dir, skipping custom sources
Installing Image::Grab (1.004002)
[MSG] Trying to get 'ftp://ftp.rediris.es/mirror/CPAN/authors/id/M/MA/MAHEX/Image-Grab-1.4.2.tar.gz'
[MSG] Trying to get 'ftp://ftp.rediris.es/mirror/CPAN/authors/id/M/MA/MAHEX/CHECKSUMS'
[MSG] Checksum matches for 'Image-Grab-1.4.2.tar.gz'
[MSG] Extracted 'Image-Grab-1.4.2/'
[MSG] Extracted 'Image-Grab-1.4.2/t/'
[MSG] Extracted 'Image-Grab-1.4.2/t/type.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/md5.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/direct_grab.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/data/'
[MSG] Extracted 'Image-Grab-1.4.2/t/data/bkgrd.html'
[MSG] Extracted 'Image-Grab-1.4.2/t/data/perl.gif'
[MSG] Extracted 'Image-Grab-1.4.2/t/background.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/manpage.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/easy.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/cookies.t'
[MSG] Extracted 'Image-Grab-1.4.2/t/comics.t'
[MSG] Extracted 'Image-Grab-1.4.2/lib/'
[MSG] Extracted 'Image-Grab-1.4.2/lib/Image/'
[MSG] Extracted 'Image-Grab-1.4.2/lib/Image/Grab.pm'
[MSG] Extracted 'Image-Grab-1.4.2/lib/Image/Grab.pod'
[MSG] Extracted 'Image-Grab-1.4.2/lib/Image/Grab/'
[MSG] Extracted 'Image-Grab-1.4.2/lib/Image/Grab/RequestAgent.pm'
[MSG] Extracted 'Image-Grab-1.4.2/MANIFEST'
[MSG] Extracted 'Image-Grab-1.4.2/META.yml'
[MSG] Extracted 'Image-Grab-1.4.2/ChangeLog'
[MSG] Extracted 'Image-Grab-1.4.2/README'
[MSG] Extracted 'Image-Grab-1.4.2/Makefile.PL'
[MSG] Extracted 'Image::Grab' to '/root/.cpanplus/5.12.3/build/Image-Grab-1.4.2'
Running [/usr/bin/perl /usr/bin/cpanp-run-perl /root/.cpanplus/5.12.3/build/Image-Grab-1.4.2/Makefile.PL]...
Do you want to perform tests
that require an active Network connection? [N] y
Checking if your kit is complete...
Looks good
Writing Makefile for Image::Grab
Running [/usr/bin/make]...
cp lib/Image/Grab.pm blib/lib/Image/Grab.pm
cp lib/Image/Grab.pod blib/lib/Image/Grab.pod
cp lib/Image/Grab/RequestAgent.pm blib/lib/Image/Grab/RequestAgent.pm
Manifying blib/man3/Image::Grab.3pm
Running [/usr/bin/make test]...
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/background.t ... ok
Parsing of undecoded UTF-8 will give garbage when decoding entities at /root/.cpanplus/5.12.3/build/Image-Grab-1.4.2/blib/lib/Image/Grab.pm line 145.
Parsing of undecoded UTF-8 will give garbage when decoding entities at /root/.cpanplus/5.12.3/build/Image-Grab-1.4.2/blib/lib/Image/Grab.pm line 145.
t/comics.t .......
Failed 2/2 subtests
t/cookies.t ...... skipped: (no reason given)
t/direct_grab.t .. ok
t/easy.t ......... ok
t/manpage.t ...... ok
t/md5.t .......... ok
t/type.t ......... ok

Test Summary Report
-------------------
t/comics.t     (Wstat: 0 Tests: 2 Failed: 2)
  Failed tests:  1-2
Files=8, Tests=14,  9 wallclock secs ( 0.07 usr  0.04 sys +  2.09 cusr  0.22 csys =  2.42 CPU)
Result: FAIL
Failed 1/8 test programs. 2/14 subtests failed.
make: *** [test_dynamic] Error 255
[ERROR] MAKE TEST failed: No such file or directory PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/background.t ... ok
Parsing of undecoded UTF-8 will give garbage when decoding entities at /root/.cpanplus/5.12.3/build/Image-Grab-1.4.2/blib/lib/Image/Grab.pm line 145.
Parsing of undecoded UTF-8 will give garbage when decoding entities at /root/.cpanplus/5.12.3/build/Image-Grab-1.4.2/blib/lib/Image/Grab.pm line 145.
t/comics.t .......
Failed 2/2 subtests
t/cookies.t ...... skipped: (no reason given)
t/direct_grab.t .. ok
t/easy.t ......... ok
t/manpage.t ...... ok
t/md5.t .......... ok
t/type.t ......... ok

Test Summary Report
-------------------
t/comics.t     (Wstat: 0 Tests: 2 Failed: 2)
  Failed tests:  1-2
Files=8, Tests=14,  9 wallclock secs ( 0.07 usr  0.04 sys +  2.09 cusr  0.22 csys =  2.42 CPU)
Result: FAIL
Failed 1/8 test programs. 2/14 subtests failed.
make: *** [test_dynamic] Error 255



The tests for 'Image::Grab' failed. Would you like me to proceed anyway or should we abort?

Proceed anyway? [y/N]: y
Running [/usr/bin/make install]...
Installing /usr/lib/perl5/site_perl/5.12.3/Image/Grab.pm
Installing /usr/lib/perl5/site_perl/5.12.3/Image/Grab.pod
Installing /usr/lib/perl5/site_perl/5.12.3/Image/Grab/RequestAgent.pm
Installing /usr/share/man/man3/Image::Grab.3pm
Appending installation info to /usr/lib/perl5/5.12.3/i586-linux-thread-multi/perllocal.pod
*** Install log written to:
  /root/.cpanplus/install-logs/Image-Grab-1.004002-1309084539.log

Module 'Image::Grab' installed successfully
No errors installing all modules
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
El caso es que me lo ha instalado al final, al responder afirmativamente a la pregunta Proceed anyway? [y/N]:.

Que funcione ahora, ya es otra cosa...

El verdadero problema es que el autor del módulo no lo ha tocado desde el 2004.

Hay registrado un error conocido, desde hace tres meses. Y sí que es vital, según la URL que vayas a usar.

Sería interesante ver qué error te sale a ti.

Los errores de instalación que me salen a mí, son:
  • el fallo de t/comics.t se debe a que el módulo intenta bajarse unas imágenes desde una URL que ha cambiado (algo lógico, desde el 2004). No es importante.
  • el fallo de background.t es porque no encuentra t/data/bkgrd.html. No es importante.

El aviso de error Parsing of undecoded UTF-8 will give garbage when decoding entities at /root/.cpanplus/5.12.3/build/Image-Grab-1.4.2/blib/lib/Image/Grab.pm line 145 no es del módulo Image::Grab, sino del HTML::TreeBuilder, pero es posible que sea debido a que no pudo bajarse los comics en el comics.t.

Al menos, diciéndole que sí, al final, te lo instala. Ahora sería cuestión de ver cómo funciona.

De todas maneras, SIEMPRE tienes acceso al código, así que tienes la ocasión de copiar el código que te interesa o probar a corregir algún error que encuentres. O buscar otro módulo que haga algo parecido, en CPAN... WWW::Mechanize tiene algo parecido.
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

Re: Utilidad de los módulos preinstalados de Perl

Notapor chsanch » 2011-06-26 10:57 @498

Para instalar módulos de Perl hay varias formas:

- Si estás usando Ubuntu (o algún derivado de Debian) puedes usar: dh-make-perl, con esto puedes crear paquetes .deb de los módulos que no están empaquetados (es muy raro, existen mucho módulos que ya están empaquetados y que se pueden instalar desde aptitude fácilmente) e instalarlos sin problemas.

- En las herramientas de lo que se ha denominado Perl Moderno, existe una que particularmente me gusta mucho por que me parece muy útil: cpanminus, con la cual puedes instalar módulos Perl directamente desde CPAN sin el problema de tener que estar resolviendo las dependencias a mano.

Desde que tengo estas herramientas a mano, ya no uso CPAN directamente; con cpanminus y local::lib puedes tener un entorno de desarrollo Perl bastante completo.
chsanch
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2010-12-02 19:43 @863
Ubicación: Madrid

Re: Utilidad de los módulos preinstalados de Perl

Notapor ManuelPerl » 2011-06-28 20:46 @907

Hola de nuevo, he leído todo lo que has puesto,debo de darte las gracias por la información, para los novatos como yo que estoy empezando es de una inmensa ayuda este foro. Con respecto a lo que comentas ahí, he hecho todos los pasos como tu, sobre Ubuntu, y me ha salido lo mismo que a ti, con los mismos errores, hasta llegar a la pregunta Proceed anyway? [y/N]:

Y he contestado yes

y me lo ha instalado.

Todavía no lo he probado,pero ya os comentare si funcionó bien el código.
Me gusta perl por lo cortitos que son los códigos, y sobre todo en el tema de sockets.
Gracias de nuevo.
ManuelPerl
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2011-06-21 16:23 @724


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron