2012-03-13 14 views
12

XML :: Parser non riesce a creare una nuova versione di Debian box a 64 bit. Dopo l'emissione di cpan XML::Parser, CPAN fallisce con un sacco di errori di circa Expat.c e Expat.xs:Come installare XML :: Parser senza expat-devel?

[...] 
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 

messaggio ad inizio dell'uscita spiega che expat-devel è necessaria per la costruzione.

Expat deve essere installato prima di creare XML :: Parser e io non riesco a trovare nelle directory della libreria standard. Installa il pacchetto 'expat-devel' con il tuo gestore di pacchetti del sistema operativo . Vedi "README".

Ma expat-devel non è nel repository Debian.

È possibile superare questo senza necessità di creare/installare expat dalla sorgente?

risposta

42

Il pacchetto che si desidera installare si chiama libexpat1-dev. È anche possibile installare libxml-parser-perl tramite apt-get. O se vuoi davvero installare tramite CPAN prova a installare prima le dipendenze dei pacchetti Debian tramite apt-get build-dep libxml-parser-perl.

9

libexpat1-dev contiene sia libexpat e expat.h, che sono entrambi indicato nel messaggio così:

Se è installato expat, ma in una directory non standard, quindi utilizzare le seguenti opzioni per Makefile .PL:

EXPATLIBPATH = ... per impostare la directory in cui per trovare libexpat

EXPATINCPATH = ... per impostare la directory in cui per trovare expat.h

Installazione libexpat1-dev sembra risolvere il problema:

$ aptitude install libexpat1-dev 
5

C'è sempre il metodo manuale - per costruire/installare expat dalla sorgente. (Questo esempio mostra l'installazione di una posizione alternativa per XAMPP | LAMPP)

Scarica da: 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 - cercare e scaricare - 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 
3

Funziona come un fascino in Ubuntu 15.04. L'unica cosa che ho bisogno è installare Perl XML Parser con:

sudo apt-get install libxml-parser-perl 

e seguendo le istruzioni qui, sono stato in grado di importare con successo tutte le mie valutazioni in Rhythmbox. Ora, l'unico lavoro che devo fare è creare nuovamente gli elenchi di riproduzione intelligenti, che non sono nulla in confronto con le mie valutazioni dell'intero libray.

2

Oggi ho avuto lo stesso problema con il nuovo GIMP 2.9.4 beta su OSX 10.8 e l'aiuto di homebrew.

Per prima cosa installare perl

brew install perl 

Poi il modulo XML :: Parser andando nella shell perl con

perl -MCPAN -e shell 

E all'interno del guscio installare XML :: Parser digitando

install XML::Parser 

Uscita shell

exit 

Ora, verificare che sia stato installato correttamente. Se tutto è a posto, non vedrai un errore.

perl -e "require XML::Parser" 

Se il ./configure non riesce ancora mancante XML :: Parser, quindi intltools non sta usando il perl è stato installato. Guardando la sceneggiatura mi dice che fa il test con $INTLTOOL_PERL -e "require XML::Parser". Provare un echo $INTLTOOL_PERL ha dato fuori nulla, quindi la magia è quello di impostare con

export $INTLTOOL_PERL=perl 

Ora gestiscono ./configure di nuovo.

0

Nessuno dei metodi precedenti ha funzionato per me. Ho avuto il giusto setup di variabili d'ambiente ma in qualche modo non sono state rilevate da cpanm che uso per installare i moduli perl. Expat è stato anche installato.

Ecco cosa ho fatto per superare lo stesso problema segnalato dall'OP. Questo è molto vicino a quello suggerito da @LadyBuzz.

  1. Scarica il XML::Parser da cpan.org
  2. estrarre il tarball nella directory e si scende ad esso.
  3. Aprire il Makefile.pl e modificare le prime righe di avere in realtà i percorsi assoluti sia per: EXPATLIBPATH e EXPATINCPATH
  4. Save the Makefile.pl, salire di un livello e creare un nuovo tarball con l'Makefile.pl che appena modificato.
  5. Esegui cpanm nel tarball appena creato.

Ciò ha comportato il successo dell'installazione del modulo.