GNU/Linux >> Tutoriels Linux >  >> Linux

Erreur Impossible de construire le module lors de la construction de modules Perl externes

Obtenez-vous une erreur "Impossible de créer le module ” lors de la compilation OpenCA base 1.5.1 ? Si oui, ce didacticiel vous expliquera comment résoudre le problème.

Eh bien, voici le message d'erreur complet.

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

Comment corriger l'erreur Impossible de construire le module

J'ai reçu l'erreur "Impossible de créer le module" pour le package Authen::SASL . Mais cette erreur peut se produire pour n'importe quel module Perl.

Au début, cela ressemblait au package Authen::SASL n'a pas été installé sur le système. J'en ai donc installé un en utilisant la commande ci-dessous :

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

Par défaut sur CentOS 6, la commande ci-dessus installe Authen::SASL version 2.16. Cependant, cela n'a pas résolu l'erreur. Plus tard, j'ai remarqué que tous les modules externes requis pour l'installation d'OpenCA Base étaient situés sous src/ext-modules dossier. Pour déboguer le problème, j'ai dû changer de répertoire dans les dossiers de module respectifs et vérifier son fichier journal. Par exemple, le module Perl externe à l'origine de cette erreur est Authen-SASL-2.15. Alors permettez-moi de changer de répertoire en Authen-SASL-2.15 sous src/ext-modules .

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

L'erreur ci-dessous a été trouvée dans le fichier journal :

$ vi log.err

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

Que signifie cette erreur ? J'ai exécuté perl Makefile.PL.

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

Étonnamment, la commande ci-dessus n'a généré aucune erreur. Maintenant, j'ai essayé make dans openca-base-1.5.1 répertoire et l'a vu passer ce module Perl particulier et a échoué lors de la compilation du module suivant - Convert::ASN1 .

Build::External PERL modules

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

Je sais de la même manière que je peux passer à Convert::ASN1 dossier sous src/ext-modules et essayez perl Makefile.PL et revenez au répertoire de base d'OpenCA et exécutez make pour corriger l'erreur. Mais puis-je le faire pour les 40 modules externes qui doivent ensuite être compilés ? Ah ! Ce n'est certainement pas la bonne façon de résoudre ce problème.

Après avoir examiné attentivement l'erreur, je comprends que l'une des variables d'environnement PREFIX ou INSTALL_BASE doit être définie et non les deux. Cet indice m'a aidé à résoudre l'erreur.

Répertoriez simplement toutes les variables d'environnement définies pour Perl et grep PERL_MB_OPT .

# perl -V | grep PERL_MB_OPT

PERL_MB_OPT="--install_base /root/perl5"

Vous pouvez voir que install_base est défini pour PERL_MB_OPT . Désactivez la variable et vous êtes prêt à compiler OpenCA Base.

#unset PERL_MB_OPT

Maintenant, le problème est résolu globalement pour chaque module externe dans src/ext-modules .


Linux
  1. Erreur Perl :le module PERL XML-Parser nécessite expat-devel

  2. Le module PERL DB_File nécessite db4-devel [Réparer]

  3. Vous ne trouvez pas -lm ?

  4. R1Soft :Une erreur s'est produite lors du chargement du module hcpdriver

  5. cp :répertoire omis - erreur lors de la copie d'un répertoire sous Linux

Comment installer des modules Perl sous Linux

Modules Perl

xhost+ :comment corriger l'erreur "Impossible d'ouvrir l'affichage" lors du lancement de l'interface graphique sur un serveur distant

Erreur Linux lors du chargement des bibliothèques partagées :impossible d'ouvrir le fichier objet partagé :aucun fichier ou répertoire de ce type

ERREUR :ld.so :l'objet LD_PRELOAD ne peut pas être préchargé :ignoré

Ignorer le module du noyau au démarrage