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?
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
.
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
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
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.
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.
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é.
XML::Parser
à partir de cpan.org
Makefile.pl
et éditez les premières lignes pour avoir les chemins absolus vers les deux: EXPATLIBPATH
et EXPATINCPATH
Makefile.pl
, montez d’un niveau et créez une nouvelle archive avec le Makefile.pl
que vous venez de modifier.cpanm
sur l'archive tar nouvellement créée.Cela a abouti à une installation réussie du module.