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
.