Question

XML::Parser ne parvient pas à s'appuyer sur une boîte Debian 64 bits assez 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

Le message au début de la sortie explique que expatrié-développeur est nécessaire à la construction.

L'expatrié doit être installé avant de construire XML :: Parser et je ne le trouve pas dans les répertoires de bibliothèque standard.Installez le package «Expat-Devel» avec votre gestionnaire de packages OS.Voir « LISEZMOI ».

Mais expatrié-développeur n'est pas dans le référentiel Debian.

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

Était-ce utile?

La solution

Le package que vous souhaitez installer est nommé libexpat1-dev.Vous pouvez aussi simplement installer libxml-parser-perl via apt-get.Ou si vous souhaitez vraiment installer via CPAN, essayez d'abord d'installer les dépendances des packages Debian via apt-get build-dep libxml-parser-perl.

Autres conseils

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

Si l'expat est installé, mais dans un répertoire non standard, utilisez les options suivantes pour faire dufile.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

Il existe toujours la méthode manuelle - pour construire/installer expatrié à partir des sources.(Cet exemple montre l'installation vers un autre emplacement pour XAMPP | Gamin)

Télécharger à partir de: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

Travaillez à merveille 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 pu importer avec succès toutes mes notes dans Rhythmbox.Maintenant, le seul travail que je dois faire est de recréer les listes de lecture intelligentes, ce qui n'est rien comparé aux notes de l'ensemble de ma bibliothèque.

Aujourd'hui, j'ai eu le même problème en voulant compiler la nouvelle version bêta de GIMP 2.9.4 sur OSX 10.8 et à l'aide d'homebrew.

Installez d'abord Perl

brew install perl

Puis 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

Quitter le shell

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 le ./configure échoue toujours en manquant XML::Parser, alors intltools n'utilise pas le Perl que vous avez installé.En regardant le script, je me dis qu'il fait le test avec $INTLTOOL_PERL -e "require XML::Parser".Essayer un echo $INTLTOOL_PERL n'a rien donné, donc la magie est de le régler avec

export $INTLTOOL_PERL=perl

Maintenant, exécutez à nouveau ./configure.

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

Voici ce que j'ai fait pour surmonter le même problème signalé par OP.C'est très proche de ce que @LadyBuzz suggéré.

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top