web-dev-qa-db-fra.com

Comment installer XML :: Parser sans Expat-Devel?

XML :: Parser ne parvient pas à créer une boîte Debian 64 bits relativement récente. Après avoir émis cpan XML::Parser, cpan échoue avec de nombreuses erreurs concernant Expat.c et 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

Un message au début de la sortie explique que expat-devel est nécessaire pour la construction.

Expat doit être installé avant de compiler XML :: Parser et je ne le trouve pas dans les répertoires de bibliothèque standard. Installez le paquetage 'expat-devel' avec votre gestionnaire de paquets OS. Voir 'LISEZMOI'.

Mais expat-devel n'est pas dans le référentiel Debian.

Est-il possible de surmonter cela sans avoir besoin de compiler/installer expat à partir des sources?

13
Alois Mahdal

Le package que vous souhaitez installer s'appelle libexpat1-dev. Vous pouvez aussi simplement installer libxml-parser-Perl via apt-get. Ou si vous voulez vraiment installer via CPAN, essayez d’installer d’abord les dépendances des paquets Debian via apt-get build-dep libxml-parser-Perl.

43
Sebastian Stumpf

libexpat1-dev contient à la fois libexpat et expat.h, tous deux mentionnés dans le message:

Si expat est installé, mais dans un répertoire non standard, utilisez les options Suivantes dans Makefile.PL:

EXPATLIBPATH = ... Pour définir le répertoire dans lequel trouver libexpat

EXPATINCPATH = ... Pour définir le répertoire dans lequel trouver expat.h

L'installation de libexpat1-dev semble résoudre le problème:

$ aptitude install libexpat1-dev
9
Alois Mahdal

Il y a toujours la méthode manuelle - pour compiler/installer expat à partir des sources. (Cet exemple montre l'installation dans un autre emplacement pour XAMPP | LAMPP )

Télécharger depuis: 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 - rechercher et télécharger - 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
5
LadyBuzz

Travaillez comme un charme dans Ubuntu 15.04. La seule chose dont j'ai besoin est d'installer Perl XML Parser avec:

Sudo apt-get install libxml-parser-Perl

Et en suivant les instructions ici, j'ai réussi à importer toutes mes notes dans Rhythmbox. Maintenant, le seul travail que je dois faire est de créer à nouveau les listes de lecture intelligentes, ce qui n’a rien de comparable avec mes cotes de bibliothèque. 

3
Marcelo Santos

Aujourd'hui, j'avais le même problème en voulant compléter la nouvelle version bêta de GIMP 2.9.4 sur OSX 10.8 et l'aide de l'homebrew.

Première installation de Perl

brew install Perl

Ensuite, le module XML :: Parser en allant dans le shell Perl avec

Perl -MCPAN -e Shell

Et à l'intérieur du shell, installez XML :: Parser en tapant

install XML::Parser

Shell de sortie

exit

Maintenant, vérifiez qu'il a été installé avec succès. Si tout va bien, vous ne verrez pas d'erreur.

Perl -e "require XML::Parser"

Si ./configure échoue toujours lorsqu’il manque XML :: Parser, alors intltools n’utilise pas Perl que vous avez installé. En regardant le script, on me dit que le test est effectué avec $INTLTOOL_Perl -e "require XML::Parser". Essayer un echo $INTLTOOL_Perl n'a donné rien, alors la magie est de le configurer avec

export $INTLTOOL_Perl=perl

Maintenant, exécutez à nouveau ./configure.

2
Markus Zeller

Aucune des méthodes ci-dessus n'a fonctionné pour moi. J'avais les bonnes variables d'environnement configurées, mais elles n'étaient pas récupérées par cpanm que j'utilise pour installer les modules Perl. Expat a également été installé.

Voici ce que j’ai fait pour résoudre le même problème signalé par OP. Ceci est très proche de ce que @LadyBuzz a suggéré.

  1. Téléchargez le XML::Parser à partir de cpan.org
  2. Extrayez l'archive dans le répertoire et descendez-y.
  3. Ouvrez le Makefile.pl et éditez les premières lignes pour avoir les chemins absolus vers les deux: EXPATLIBPATH et EXPATINCPATH
  4. Enregistrez le Makefile.pl, montez d’un niveau et créez une nouvelle archive avec le Makefile.pl que vous venez de modifier.
  5. Exécutez cpanm sur l'archive tar nouvellement créée.

Cela a abouti à une installation réussie du module.

0
mjp