¿Cómo instalar XML::Parser sin expat-devel?
-
13-12-2019 - |
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?
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ó.
- Descargar el
XML::Parser
decpan.org
- Extraiga el archivo tar al directorio y descienda hasta él.
- Abre el
Makefile.pl
y edite las primeras líneas para tener las rutas absolutas a ambos:EXPATLIBPATH
yEXPATINCPATH
- Salva el
Makefile.pl
, sube un nivel y crea un nuevo tarball con elMakefile.pl
que acabas de editar. - Ejecutar
cpanm
en el tarball recién creado.
Esto resultó en una instalación exitosa del módulo.