GNU/Linux >> Znalost Linux >  >> Linux

Chyba Nelze sestavit modul při vytváření externích modulů Perl

Zobrazuje se vám chyba „Nelze sestavit modul ” při kompilaci OpenCA base 1.5.1? Pokud ano, pak tento tutoriál vysvětlí, jak to opravit.

Zde je kompletní chybová zpráva.

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

Jak opravit chybu Cannot build module

Zobrazila se mi chyba „Nelze sestavit modul“ pro balíček Authen::SASL . Tato chyba se však může vyskytnout u jakéhokoli modulu Perl.

Nejprve to vypadalo jako balíček Authen::SASL nebyl v systému nainstalován. Nainstaloval jsem tedy jeden pomocí níže uvedeného příkazu:

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

Ve výchozím nastavení na CentOS 6 výše uvedený příkaz nainstaloval Authen::SASL verze 2.16. Chybu to však nevyřešilo. Později jsem si všiml, že všechny externí moduly, které jsou nutné pro instalaci OpenCA Base, byly umístěny pod src/ext-modules složka. K odladění problému jsem musel změnit adresář na příslušné složky modulu a zkontrolovat jeho soubor protokolu. Například externí modul Perl, který způsobuje tuto chybu, je Authen-SASL-2.15. Dovolte mi tedy změnit adresář na Authen-SASL-2.15 pod src/ext-modules .

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

V souboru protokolu byla nalezena níže uvedená chyba:

$ vi log.err

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

Co ta chyba znamená? Spustil jsem perl Makefile.PL.

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

Překvapivě výše uvedený příkaz nevyvolal žádnou chybu. Teď jsem zkusil make v openca-base-1.5.1 adresář a viděl, že prošel konkrétním modulem Perl a selhal při kompilaci dalšího modulu – Convert::ASN1 .

Build::External PERL modules

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

Vím, že stejným způsobem mohu přepnout na Convert::ASN1 složka pod src/ext-modules a zkuste perl Makefile.PL a vraťte se do základního adresáře OpenCA a spusťte make opravit chybu. Ale mohu to udělat pro všech 40 externích modulů, které je třeba zkompilovat jako další? Ach! Toto rozhodně není správný způsob, jak tento problém vyřešit.

Poté, co jsem se na chybu podrobně podíval, jsem pochopil, že by měla být nastavena buď jedna z proměnných prostředí PREFIX nebo INSTALL_BASE, a ne obě. Tato rada mi pomohla chybu vyřešit.

Stačí vypsat všechny proměnné prostředí nastavené pro Perl a grep PERL_MB_OPT .

# perl -V | grep PERL_MB_OPT

PERL_MB_OPT="--install_base /root/perl5"

Můžete vidět, že install_base je nastaven na PERL_MB_OPT . Zrušte nastavení proměnné a je dobré zkompilovat OpenCA Base.

#unset PERL_MB_OPT

Nyní je problém globálně vyřešen pro každý externí modul v src/ext-modules .


Linux
  1. Jak nainstalovat moduly Perl na Linux

  2. Chyba Perlu:Modul PERL XML-Parser vyžaduje expat-devel

  3. Modul PERL DB_File vyžaduje db4-devel [Opravit]

  1. Nemůžete najít -lm?

  2. Chyba instalace modulu cPanel Perl PNGgraph

  3. CHYBA:ld.so:objekt LD_PRELOAD nelze předem načíst:ignorováno

  1. Udělat chybu při instalaci LiME na CentOS – lib/modules/kernel_version/build:Žádný takový soubor nebo adresář [Vyřešeno]

  2. Chyba při používání novější verze glibc

  3. Při bootování přeskočte modul jádra