[l-linux] Error de compilación en CPAN

Ernesto Hernandez-Novich emhn at telcel.net.ve
Sat Dec 28 17:04:58 CST 2002


On Thu, 19 Dec 2002, Rafael Isturiz wrote:
> Buenas, tengo problemas tratando de instalar el "Bundle::Xmms" por el CPAN. A
> continuación pego el error para ver quien me puede dar una mano con esto:
>
> PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib
> -I/usr/lib/perl5/5.6.1/i386-linux -I/usr/lib/perl5/5.6.1 test.pl
> Can't load 'blib/arch/auto/Xmms/Remote/Remote.so' for module Xmms::Remote:
> blib/arch/auto/Xmms/Remote/Remote.so: undefined symbol: xmms_usleep at
> /usr/lib/perl5/5.6.1/i386-linux/DynaLoader.pm line 206.
>  at blib/lib/Xmms.pm line 4

No pudo cargar Remote.so (eso es una librería dinámica del módulo)
porque no puede _resolver_ el símbolo xmms_usleep. Ese símbolo
corresponde a una rutina de XMMS y se encuentra en la _librería_ de XMMS
libxmms.so.

Cuando un componente .xs de Perl no puede resolver un símbolo de una
librería, el módulo asociado no puede cargarse. Esta resolución ocurre a
tiempo de ejecución. Para que sea exitosa, durante la compilación del
módulo Perl debe contar con _toda_ la información acerca de  la librería
externa (en este caso la de XMMS) con la cual va a enlazarse.

> Compilation failed in require at blib/lib/Xmms.pm line 4.
> BEGIN failed--compilation aborted at blib/lib/Xmms.pm line 4.
> Compilation failed in require at test.pl line 3.
> BEGIN failed--compilation aborted at test.pl line 3.
> make: *** [test_dynamic] Error 255
>   /usr/bin/make test -- NOT OK
> Running make install
>   make test had returned bad status, won't install without force
> Bundle summary: The following items in bundle Bundle::Xmms had installation
> problems:
>   Xmms
>
> * Consideraciones:
> -Tengo la última versión del xmms compilada. ( 1.2.7 )

Si lo compilaste manualmente, debes haberlo instalado previamente. Si lo
instalaste en directorios que _no_ sean /usr/bin, /usr/lib y
/usr/include, debes indicarle al enlazador dinámico el directorio donde
están las librerías de  xmms y "actualizarlo"; esto se hace editanto el
archivo /etc/ld.so.conf y ejecutando ldconfig (man ldconfig). Esto no es
dependiente de Perl, sino una consideración para instalar apropiadamente
un paquete que tiene librerías dinámicas.

Y hablando de librerías dinámicas, recuerdo que XMMS puede compilarse
para que su librería sea estática o dinámica. Para que el módulo de Perl
pueda trabajar, debes compilar XMMS con librerías dinámicas.

Si instalaste XMMS desde un RPM para Mandrake, solamente tienes el
_ejecutable_ de XMMS, más no los archivos de encabezado necesarios para
compilar programas que aprovechen las librerías XMMS.  En muchas
distribuciones XMMS viene separado en dos paquetes, xmms y xmms-dev, de
los cuales necesitarías el segundo.

> -Uso Mandrake Linux 8.1
> -CPAN configurado. ( Anteriormente he instalado otros módulos sin problemas ).

Para los que usamos Debian, si queremos ese módulo hacemos

apt-get install libxmms-perl

pues en Debian hay alrededor de 450+ módulos Perl pre-compilados listos
para instalar (además de todos los incluídos en la distribución
standard de Perl).
-- 
Ernesto Hernández-Novich - Running Linux 2.4.19 i686 - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't apt-get it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3

------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list