Erhalten Sie eine Fehlermeldung „Modul kann nicht erstellt werden ” beim Kompilieren von OpenCA base 1.5.1? Wenn ja, dann erklärt dieses Tutorial, wie man das Problem beheben kann.
Nun, hier ist die vollständige Fehlermeldung.
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
So beheben Sie den Fehler „Modul kann nicht erstellt werden“
Ich habe die Fehlermeldung „Modul kann nicht erstellt werden“ für das Paket Authen::SASL
erhalten . Aber dieser Fehler kann bei jedem Perl-Modul auftreten.
Zunächst sah es aus wie das Paket Authen::SASL
wurde nicht auf dem System installiert. Also habe ich eine mit dem folgenden Befehl installiert:
# perl -MCPAN -e 'install Authen::SASL'
Standardmäßig installierte der obige Befehl unter CentOS 6 Authen::SASL
Version 2.16. Der Fehler wurde jedoch nicht behoben. Später bemerkte ich, dass sich alle externen Module, die für die Installation von OpenCA Base erforderlich sind, unter src/ext-modules
befanden Mappe. Um das Problem zu debuggen, musste ich das Verzeichnis in die entsprechenden Modulordner wechseln und die Protokolldatei überprüfen. Das externe Perl-Modul, das diesen Fehler verursacht, ist beispielsweise Authen-SASL-2.15. Lassen Sie mich also das Verzeichnis zu Authen-SASL-2.15 unter src/ext-modules
ändern .
$ cd src/ext-modules/Authen-SASL-2.15
Den folgenden Fehler in der Protokolldatei gefunden:
$ vi log.err Only one of PREFIX or INSTALL_BASE can be given. Not both.
Was bedeutet dieser Fehler? Ich habe perl Makefile.PL.
ausgeführt
[src/ext-modules/Authen-SASL-2.15]$ perl Makefile.PL
Überraschenderweise hat der obige Befehl keinen Fehler ausgelöst. Jetzt habe ich es mit make
versucht im openca-base-1.5.1
Verzeichnis und sah, dass es dieses bestimmte Perl-Modul passierte und beim Kompilieren des nächsten Moduls – Convert::ASN1
– fehlschlug .
Build::External PERL modules Building (Authen::SASL::215) ... Ok Building (Convert::ASN1::022) ... ERROR::Can not build module
Ich weiß, dass ich auf die gleiche Weise zu Convert::ASN1
wechseln kann Ordner unter src/ext-modules
und versuchen Sie perl Makefile.PL
und gehen Sie zurück zum OpenCA-Basisverzeichnis und führen Sie make
aus um den Fehler zu beheben. Aber kann ich das für alle 40 externen Module tun, die als nächstes kompiliert werden müssen? Aha! Dies ist definitiv nicht der richtige Weg, um dieses Problem zu lösen.
Nachdem ich mir den Fehler genau angesehen habe, verstehe ich, dass entweder eine der Umgebungsvariablen PREFIX oder INSTALL_BASE festgelegt werden sollte und nicht beide. Dieser Hinweis hat mir geholfen, den Fehler zu beheben.
Listen Sie einfach alle für Perl gesetzten Umgebungsvariablen auf und grep PERL_MB_OPT
.
# perl -V | grep PERL_MB_OPT PERL_MB_OPT="--install_base /root/perl5"
Sie können diese install_base
sehen ist für PERL_MB_OPT
gesetzt . Deaktivieren Sie die Variable und Sie können OpenCA Base kompilieren.
#unset PERL_MB_OPT
Jetzt ist das Problem global für jedes externe Modul in src/ext-modules
behoben .