Oggi stavo lavorando a un nuovo strumento in cui mi sono imbattuto in un piccolo problema durante l'esecuzione di alcuni test utilizzando uno script Perl nella mia casella Ubuntu installata utilizzando Oracle Virtual Box.
Fondamentalmente, l'errore visualizzato era "Impossibile localizzare XML / LibXML.pm in @INC" e assomigliava a questo:
Impossibile individuare XML / LibXML.pm in @INC (potrebbe essere necessario installare il modulo XML :: LibXML) (@INC contiene: / etc / perl /usr/local/lib/x86_64-linux-gnu/perl/5.22 .1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 / usr / share / perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 / usr /share/perl/5.22 / usr / local / lib / site_perl / usr / lib / x86_64-linux-gnu / perl-base.) alla riga ./run_test.pl 15.
BEGIN compilazione fallita interrotta alla riga ./run_test.pl 15.
Come l'errore ha suggerito sulla soluzione, ho provato ad installare il modulo Perl LibXML usando il comando seguente:
sudo cpan install XML::LibXML
Ma questo comando ha avuto un altro problema. L'output completo è questo:
Caricamento logger null interno. Installa registro :: Log4perl per i messaggi di registrazione
Leggendo '/home/abhi/.cpan/Metadata'
Il database è stato generato il gio, 23 mar 2017 09:41:02 GMT
Esecuzione dell'installazione per il modulo 'XML :: LibXML'
Checksum per /home/abhi/.cpan/sources/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0129.tar.gz ok
'YAML' non installato, non memorizzerà lo stato persistente
Configurazione di S / SH / SHLOMIF / XML-LibXML-2.0129.tar.gz con Makefile.PL
abilita nativo perl UTF8
eseguire xml2-config ... non è riuscito a ottenere la configurazione di libxml2, indovinando
opzioni:
LIBS = '- L / usr / local / lib -L / usr / lib -lxml2 -lm'
INC = '- I / usr / local / include -I / usr / include'
Se questo è sbagliato, ritorna come:
$ / usr / bin / perl Makefile.PL LIBS = '- L / percorso / a / lib' INC = '- I / percorso / a / include'
Verifica dell'abilità di collegamento con xml2 ... no
Non è stato trovato il controllo dell'abilità di collegamento con libxml2 ... libxml2, zlib e / o la libreria Math (-lm).
Prova a impostare i valori LIBS e INC sulla riga di comando
Oppure prendi libxml2 da
//xmlsoft.org/
Se si installa tramite RPM, assicurarsi di installare anche -devel
RPM, poiché qui si trovano le intestazioni (file .h).
Inoltre, si può provare a eseguire perl Makefile.PL con il parametro DEBUG = 1
per vedere il motivo esatto per cui il rilevamento dell'installazione di libxml2
fallito o perché Makefile.PL non è stato in grado di compilare un programma di test.
No 'Makefile' ha creato SHLOMIF / XML-LibXML-2.0129.tar.gz
/ usr / bin / perl Makefile.PL INSTALLDIRS = sito - NON OK
La correzione non è molto complicata ma potrebbe volerci del tempo per capirlo. In questo suggerimento rapido, ti mostrerò come installare il modulo LibXML su Ubuntu o qualsiasi altra distribuzione Linux basata su Ubuntu.
Come installare il modulo Perl LibXML su Ubuntu Linux
Ho evidenziato il motivo della mancata installazione di LibXML nell'output di errore mostrato sopra. È molto chiaro di per sé:
Non è stato trovato il controllo dell'abilità di collegamento con libxml2 ... libxml2, zlib e / o la libreria Math (-lm).
Chiaramente il sistema manca librerie libxml2 e zlib. Per risolvere questo problema, è sufficiente installare le librerie richieste utilizzando il comando seguente:
sudo apt-get install zlib1g-dev libxml2-dev
Una volta installate le librerie, procedere e installare il modulo Perl LibXML nel modo normale:
sudo cpan install XML::LibXML
Questo è tutto. Spero che questo rapido ti abbia aiutato a risolvere i piccoli problemi con l'installazione del modulo LibXML su Ubuntu 16.04 e altre versioni.