GNU/Linux >> Linux Esercitazione >  >> Linux

Errore Impossibile compilare il modulo durante la creazione di moduli Perl esterni

Viene visualizzato un messaggio di errore "Impossibile creare il modulo ” durante la compilazione di OpenCA base 1.5.1? Se sì, allora questo tutorial spiegherà come risolvere lo stesso.

Bene, ecco il messaggio di errore completo.

Build::External PERL modules

Building (openca::ac) ... ERROR::Cannot build module
make[6]: *** [openca-ac] Error 1

Build::External PERL modules

Building (Authen::SASL::215) ... ERROR::Cannot build module

Come risolvere l'errore Impossibile compilare il modulo

Ho ricevuto l'errore "Impossibile compilare il modulo" per il pacchetto Authen::SASL . Ma questo errore può verificarsi per qualsiasi modulo Perl.

All'inizio sembrava il pacchetto Authen::SASL non è stato installato sul sistema. Quindi ne ho installato uno usando il comando seguente:

# perl -MCPAN -e 'install Authen::SASL'

Per impostazione predefinita su CentOS 6, il comando precedente ha installato Authen::SASL versione 2.16. Tuttavia, non ha risolto l'errore. Successivamente ho notato che tutti i moduli esterni necessari per l'installazione di OpenCA Base si trovavano in src/ext-modules cartella. Per eseguire il debug del problema, ho dovuto cambiare la directory nelle rispettive cartelle del modulo e controllare il suo file di registro. Ad esempio, il modulo Perl esterno che causa questo errore è Authen-SASL-2.15. Quindi fammi cambiare la directory in Authen-SASL-2.15 in src/ext-modules .

$ cd src/ext-modules/Authen-SASL-2.15

Trovato l'errore seguente nel file di registro:

$ vi log.err

Only one of PREFIX or INSTALL_BASE can be given. Not both.

Cosa significa quell'errore? Ho eseguito perl Makefile.PL.

[src/ext-modules/Authen-SASL-2.15]$ perl Makefile.PL

Sorprendentemente, il comando sopra non ha generato alcun errore. Ora ho provato make nel openca-base-1.5.1 directory e l'ha visto passare quel particolare modulo Perl e non è riuscito durante la compilazione del modulo successivo: Convert::ASN1 .

Build::External PERL modules

Building (Authen::SASL::215) ... Ok
Building (Convert::ASN1::022) ... ERROR::Can not build module

So che allo stesso modo posso passare a Convert::ASN1 cartella in src/ext-modules e prova perl Makefile.PL e torna alla directory di base di OpenCA ed esegui make per correggere l'errore. Ma posso farlo per tutti i 40 moduli esterni che devono essere compilati successivamente? Ah! Questo non è sicuramente il modo giusto per risolvere questo problema.

Dopo aver esaminato attentamente l'errore, capisco che una delle variabili di ambiente PREFIX o INSTALL_BASE dovrebbe essere impostata e non entrambe. Quel suggerimento mi ha aiutato a risolvere l'errore.

Basta elencare tutte le variabili d'ambiente impostate per Perl e grep PERL_MB_OPT .

# perl -V | grep PERL_MB_OPT

PERL_MB_OPT="--install_base /root/perl5"

Puoi vedere che install_base è impostato per PERL_MB_OPT . Deseleziona la variabile e sei a posto per compilare OpenCA Base.

#unset PERL_MB_OPT

Ora il problema è stato risolto a livello globale per ogni modulo esterno all'interno di src/ext-modules .


Linux
  1. Errore Perl:il modulo PERL XML-Parser richiede expat-devel

  2. Il modulo PERL DB_File richiede db4-devel [fissare]

  3. Impossibile compilare Python.h – Errore di installazione di Websockify

  4. Non riesci a trovare -lm?

  5. R1Soft :si è verificato un errore durante il caricamento del modulo hcpdriver

Moduli Perl

Errore durante l'installazione di LiME su CentOS – lib/modules/kernel_version/build:nessun file o directory di questo tipo [Risolto]

Errore cPanel Perl Module PNGgraph non può essere installato

I moduli Perl richiedono il modulo::Build ma non è installato

ERRORE:ld.so:l'oggetto LD_PRELOAD non può essere precaricato:ignorato

Errore durante l'utilizzo di una versione più recente di glibc