Comment installer XML :: Parser sans expat-devel ?
-
13-12-2019 - |
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 ?
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é.
- Téléchargez le
XML::Parser
depuiscpan.org
- Extrayez l’archive tar dans le répertoire et descendez-y.
- Ouvrez le
Makefile.pl
et modifiez les premières lignes pour avoir réellement les chemins absolus vers les deux :EXPATLIBPATH
etEXPATINCPATH
- Sauver la
Makefile.pl
, montez d'un niveau et créez une nouvelle archive tar avec leMakefile.pl
que vous venez de modifier. - Exécuter
cpanm
sur l'archive tar nouvellement créée.
Cela a abouti à une installation réussie du module.