Pregunta

XML::Parser no puede construir sobre una versión Debian de 64 bits bastante nueva.Después de emitir cpan XML::Parser, cpan falla con muchos errores sobre Expat.c y Expat.xs:

[...]
Expat.xs:2182: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.c: In function ‘XS_XML__Parser__Expat_Do_External_Parse’:
Expat.c:2904: error: ‘XML_Parser’ undeclared (first use in this function)
Expat.c:2904: error: expected ‘;’ before ‘parser’
Expat.xs:2194: error: ‘parser’ undeclared (first use in this function)
make[1]: *** [Expat.o] Error 1
make[1]: Leaving directory `/root/.cpan/build/XML-Parser-2.41-rpV6ok/Expat'
make: *** [subdirs] Error 2
  TODDR/XML-Parser-2.41.tar.gz
  /usr/bin/make -- NOT OK
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible

El mensaje al inicio del resultado explica que desarrollo de expatriados Se necesita para la construcción.

Expat debe instalarse antes de compilar XML::P arser y no puedo encontrar en los directorios estándar de la biblioteca.Instale el paquete 'expat-devel' con su Administrador de paquetes del sistema operativo.Consulte 'LÉAME'.

Pero desarrollo de expatriados no está en el repositorio de Debian.

¿Es posible superar esto sin necesidad de compilar/instalar expat desde la fuente?

¿Fue útil?

Solución

El paquete que desea instalar se llama libexpat1-dev.También puedes simplemente instalar libxml-parser-perl a través de apt-get.O si realmente desea instalar a través de CPAN, intente instalar primero las dependencias de los paquetes de Debian a través de apt-get build-dep libxml-parser-perl.

Otros consejos

libexpat1-dev contiene tanto libexpat como expatriados.h, que se mencionan en ambosEl mensaje también:

Si se instala el expatriado, pero en un directorio no estándar, entonces use el siguientes opciones para makefile.pl:

ExpatliBPATH= ... para configurar el directorio en el que se encuentra LIBEXPAT

Expatincpath= ... para establecer el directorio en el que encontrará expatriados .H

Instalación de LiBexpat1-Dev parece resolver el problema:

$ aptitude install libexpat1-dev

Siempre hay el método manual: para construir / instalar expat de la fuente. (Este ejemplo muestra la instalación en una ubicación alternativa para xampp | lapplp )

Descargar desde: http://sourceforge.net/projects/expat/files/expat/

tar zxf /[where-ever]/expat-2.1.0.tar.gz -C /tmp
cd /tmp/expat-2.1.0
/opt/lampp/bin/perl ./configure --prefix=/opt/lampp LDFLAGS=-L/opt/lampp/lib 
make
make install

http://search.cpan.org - Buscar y descargar - XML :: Parser

tar zxf /[where-ever]/XML-Parser-2.41.tar.gz -C /tmp
cd /tmp/XML-Parser-2.41
/opt/lampp/bin/perl ./Makefile.PL EXPATLIBPATH=/opt/lampp/lib EXPATINCPATH=/opt/lampp/include
make
make test
make install

Trabaja como un encanto en Ubuntu 15.04.Lo único que necesito es instalar Perl XML Parser con:

sudo apt-get install libxml-parser-perl

Y siguiendo las instrucciones aquí, pude importar con éxito todas mis calificaciones en Rhythmbox.Ahora, el único trabajo que debo hacer es crear nuevamente las listas de juegos inteligentes, eso no es nada comparado con mis calificaciones de Librey.

Hoy tuve el mismo problema al querer compilar la nueva versión beta de GIMP 2.9.4 en OSX 10.8 y la ayuda de Homebrew.

Primera instalación de Perl.

brew install perl

Luego, el módulo XML::Parser ingresando al shell de Perl con

perl -MCPAN -e shell

Y dentro del shell instale XML::Parser escribiendo

install XML::Parser

Salir del shell

exit

Ahora, verifique que se haya instalado correctamente.Si todo está bien, no verás ningún error.

perl -e "require XML::Parser"

Si ./configure aún falla y falta XML::Parser, entonces intltools no está usando el perl que ha instalado.Mirando el guión me dice que hace la prueba con $INTLTOOL_PERL -e "require XML::Parser".Probando un echo $INTLTOOL_PERL no dio nada, así que la magia es configurarlo con

export $INTLTOOL_PERL=perl

Ahora ejecute ./configure nuevamente.

Ninguno de los métodos anteriores funcionó para mí.Tenía las variables de entorno correctas configuradas pero de alguna manera no fueron recogidas por cpanm que uso para instalar módulos perl.También se instaló Expat.

Esto es lo que hice para superar el mismo problema que informa OP.Esto está muy cerca de lo que @LadyBuzz sugirió.

  1. Descargar el XML::Parser de cpan.org
  2. Extraiga el archivo tar al directorio y descienda hasta él.
  3. Abre el Makefile.pl y edite las primeras líneas para tener las rutas absolutas a ambos: EXPATLIBPATH y EXPATINCPATH
  4. Salva el Makefile.pl, sube un nivel y crea un nuevo tarball con el Makefile.pl que acabas de editar.
  5. Ejecutar cpanm en el tarball recién creado.

Esto resultó en una instalación exitosa del módulo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top