Comment Installer XML:: Parser sans expat-devel?

XML:: Parser ne parvient pas à construire sur une toute nouvelle boîte Debian 64 bits. Après avoir émis cpan XML::Parser , cpan échoue avec beaucoup d'erreurs sur Expat.c et les Expatriés.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

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

Expatrié doit être installé avant de procéder à la construction de XML::Parser et je ne trouve pas dans la bibliothèque standard des répertoires. Installer 'expat-devel' paquet avec votre Gestionnaire de paquets OS. Voir "README".

mais expat-devel n'est pas dans le dépôt Debian.

est-il possible de surmonter cela sans avoir besoin de construire/installer expat à partir de la source?

12
demandé sur skaffman 2012-03-14 02:13:50

6 réponses

le paquet que vous voulez installer s'appelle libexpat1-dev . Vous pouvez aussi installer libxml-parser-perl via apt-get. Ou si vous voulez vraiment installer via CPAN, essayez d'abord d'installer les dépendances des paquets Debian via apt-get build-dep libxml-parser-perl .

42
répondu Sebastian Stumpf 2012-03-13 22:20:50

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

si expat est installé, mais dans un répertoire non standard, alors utiliser le les options suivantes pour Makefile.PL:

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

EXPATINCPATH=... Pour définir le répertoire dans lequel les expatriés.h

installer libexpat1-dev semble résoudre le problème:

$ aptitude install libexpat1-dev
9
répondu Alois Mahdal 2012-03-13 22:20:30

il y a toujours la méthode manuelle - pour construire/installer expat à partir de la source. (Cet exemple montre l'installation à un autre endroit pour XAMPP / LAMPP )

télécharger à partir: 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 - recherche et téléchargement - 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
répondu LadyBuzz 2012-04-24 20:19:42

fonctionne 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 pu importer avec succès toutes mes évaluations dans Rhythmbox. Maintenant, le seul travail que je dois faire est de créer à nouveau les listes de lecture intelligentes, qui n'est rien comparé à l'ensemble de mes évaluations libray.

3
répondu Marcelo Santos 2015-05-24 00:59:11

Aujourd'hui, j'ai eu le même problème voulant compliquer le nouveau GIMP 2.9.4 beta sur OSX 10.8 et l'aide de homebrew.

première installation perl

brew install perl

puis le module XML:: Parser en entrant dans le shell perl avec

perl -MCPAN -e shell

et à l'intérieur du shell Installer XML:: analyseur en tapant

install XML::Parser

Sortie shell

exit

maintenant, Vérifiez qu'il a été installé réussi. Si tout va bien, vous ne verrez pas d'erreur.

perl -e "require XML::Parser"

si le ./ configure échoue toujours manquant XML:: Parser, alors intltools n'utilise pas la perl que vous avez installée. En regardant le script, je vois 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 mettre avec

export $INTLTOOL_PERL=perl

courez ./configurer à nouveau.

2
répondu Markus Zeller 2016-07-21 21:46:18

aucune des méthodes ci-dessus n'a fonctionné pour moi. J'avais la bonne configuration des variables d'environnement mais elles n'ont pas été 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 surmonter le même problème que L'OP rapporte. C'est très proche de ce que suggère @LadyBuzz .

  1. Téléchargez le XML::Parser de cpan.org
  2. extraire le tarball dans le répertoire et descendre à elle.
  3. ouvrir le Makefile.pl et éditer les premières lignes pour avoir réellement les chemins absolus à la fois: EXPATLIBPATH et EXPATINCPATH
  4. Enregistrer Makefile.pl , remonter d'un niveau et de créer une archive avec le Makefile.pl que vous venez de modifier.
  5. Exécuter cpanm sur le nouvellement créé archive.

installation réussie du module.

0
répondu mjp 2017-06-08 16:41:26