GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fehler Modul kann nicht erstellt werden, während externe Perl-Module erstellt werden

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 .


Linux
  1. Perl-Fehler:PERL-XML-Parser-Modul erfordert expat-devel

  2. Das PERL DB_File-Modul erfordert db4-devel [Fix]

  3. cPanel-Perl-Modul PNGgraph konnte nicht installiert werden Fehler

  4. R1Soft :Beim Laden des hcpdriver-Moduls ist ein Fehler aufgetreten

  5. Perl-Module benötigen Module::Build, sind aber nicht installiert

Perl-Module

Kann -lm nicht finden?

cp:Verzeichnis weglassen – Fehler beim Kopieren eines Verzeichnisses unter Linux

FEHLER:ld.so:Objekt LD_PRELOAD kann nicht vorab geladen werden:ignoriert

Fehler bei Verwendung einer neueren Version von glibc

Kernelmodul beim Booten überspringen