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
.