Wie installiere ich XML::Parser ohne expat-devel?
-
13-12-2019 - |
Frage
XML::Parser kann nicht auf einer recht neuen 64-Bit-Debian-Box aufbauen.Nach der Ausstellung cpan XML::Parser
, cpan schlägt mit vielen Fehlern bezüglich Expat.c und Expat.xs fehl:
[...]
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
Die Meldung am Anfang der Ausgabe erklärt dies Expat-Entwicklung wird zum Bauen benötigt.
Der Expat muss vor dem Erstellen von XML :: Parser installiert werden, und ich kann ihn nicht in den Standardbibliotheksverzeichnissen finden.Installieren Sie das "Expat-Devel" -Paket mit Ihrem OS-Paket-Manager.Siehe „README“.
Aber Expat-Entwicklung ist nicht im Debian-Repository.
Ist es möglich, darüber hinwegzukommen, ohne Expat aus dem Quellcode erstellen/installieren zu müssen?
Lösung
Das Paket, das Sie installieren möchten, wird benannt libexpat1-dev
.Sie können es auch einfach installieren libxml-parser-perl
über apt-get.Oder wenn Sie wirklich über CPAN installieren möchten, versuchen Sie zunächst, die Abhängigkeiten der Debian-Pakete über zu installieren apt-get build-dep libxml-parser-perl
.
Andere Tipps
libexpat1-dev enthält sowohl libexpat als auch expat.h, die beide in erwähnt sindDie Nachricht auch:
Wenn Expat installiert ist, aber in einem Nicht-Standardverzeichnis, verwenden Sie die folgende Optionen an makefile.pl:
expatlibpath= ..., um das Verzeichnis einzustellen, in dem LIBEXPAT
findetexpatincpath= ..., um das Verzeichnis einzustellen, in dem expat.h
erfahren werden sollen
libexpat1-dev installieren scheint das Problem zu lösen:
generasacodicetagpre. Es gibt immer die manuelle Methode - zum Erstellen / Installieren von Expat von der Quelle.
(Dieses Beispiel zeigt die Installation an einem alternativen Ort für
Download von: http://sourceforge.net/projects/expat/files/expat/
generasacodicetagpre.http://search.cpan.org - Suche nach und downloaden - XML :: Parser
. generasacodicetagpre.Arbeit wie ein Charme in Ubuntu 15.04.Das einzige, was ich brauche, ist das Installieren von Perl XML-Parser mit:
generasacodicetagpre.Und folgen Sie den Anweisungen hier, ich konnte alle meine Bewertungen in Rhythmbox erfolgreich importieren.Nun, die einzige Arbeit, die ich tun muss, ist, dass die Smart Play-Listen erneut erstellt werden, das ist nichts im Vergleich zu meinen gesamten Libray-Ratings.
Heute hatte ich das gleiche Problem, als ich die neue Betaversion von GIMP 2.9.4 unter OSX 10.8 und mithilfe von Homebrew kompilieren wollte.
Installieren Sie zuerst Perl
brew install perl
Dann das XML::Parser-Modul, indem Sie mit in die Perl-Shell gehen
perl -MCPAN -e shell
Und in der Shell installieren Sie XML::Parser durch Eingabe
install XML::Parser
Shell verlassen
exit
Überprüfen Sie nun, ob die Installation erfolgreich war.Wenn alles in Ordnung ist, wird kein Fehler angezeigt.
perl -e "require XML::Parser"
Wenn ./configure immer noch fehlschlägt und XML::Parser fehlt, verwendet intltools nicht das von Ihnen installierte Perl.Ein Blick auf das Skript zeigt mir, dass es den Test mit durchführt $INTLTOOL_PERL -e "require XML::Parser"
.Versuche a echo $INTLTOOL_PERL
gab nichts aus, also besteht die Magie darin, es zu setzen
export $INTLTOOL_PERL=perl
Führen Sie nun ./configure erneut aus.
Keine der oben genannten Methoden hat bei mir funktioniert.Ich hatte die richtigen Umgebungsvariablen eingerichtet, aber sie wurden irgendwie nicht erkannt cpanm
mit dem ich Perl-Module installiere.Expat wurde ebenfalls installiert.
Hier ist, was ich getan habe, um das gleiche Problem zu lösen, das OP meldet.Das kommt dem sehr nahe @LadyBuzz empfohlen.
- Laden Sie die herunter
XML::Parser
auscpan.org
- Extrahieren Sie den Tarball in das Verzeichnis und steigen Sie dorthin ab.
- Öffne das
Makefile.pl
und bearbeiten Sie die ersten Zeilen, um tatsächlich die absoluten Pfade zu beiden zu haben:EXPATLIBPATH
UndEXPATINCPATH
- Speichern Sie die
Makefile.pl
, gehen Sie eine Ebene nach oben und erstellen Sie einen neuen Tarball mitMakefile.pl
das du gerade bearbeitet hast. - Ausführen
cpanm
auf dem neu erstellten Tarball.
Dies führte zu einer erfolgreichen Installation des Moduls.