¿Recibe un error "No se puede construir el módulo ” mientras compila OpenCA base 1.5.1? En caso afirmativo, este tutorial explicará cómo solucionarlo.
Bueno, aquí está el mensaje de error completo.
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
Cómo solucionar el error No se puede construir el módulo
Recibí el error "No se puede crear el módulo" para el paquete Authen::SASL
. Pero este error puede ocurrir para cualquier módulo de Perl.
Al principio, parecía el paquete Authen::SASL
no estaba instalado en el sistema. Así que instalé uno usando el siguiente comando:
# perl -MCPAN -e 'install Authen::SASL'
De forma predeterminada en CentOS 6, el comando anterior instaló Authen::SASL
versión 2.16. Sin embargo, no resolvió el error. Más tarde noté que todos los módulos externos que se requieren para la instalación de OpenCA Base estaban ubicados en src/ext-modules
carpeta. Para depurar el problema, tuve que cambiar el directorio a las carpetas del módulo respectivo y verificar su archivo de registro. Por ejemplo, el módulo Perl externo que provoca este error es Authen-SASL-2.15. Permítanme cambiar el directorio a Authen-SASL-2.15 en src/ext-modules
.
$ cd src/ext-modules/Authen-SASL-2.15
Encontré el siguiente error en el archivo de registro:
$ vi log.err Only one of PREFIX or INSTALL_BASE can be given. Not both.
¿Qué significa ese error? Ejecuté perl Makefile.PL.
[src/ext-modules/Authen-SASL-2.15]$ perl Makefile.PL
Sorprendentemente, el comando anterior no arrojó ningún error. Ahora probé make
en el openca-base-1.5.1
directorio y vi que pasó ese módulo Perl en particular y falló al compilar el siguiente módulo: Convert::ASN1
.
Build::External PERL modules Building (Authen::SASL::215) ... Ok Building (Convert::ASN1::022) ... ERROR::Can not build module
Sé que de la misma manera puedo cambiar a Convert::ASN1
carpeta bajo src/ext-modules
y prueba perl Makefile.PL
y regrese al directorio base de OpenCA y ejecute make
para corregir el error. Pero, ¿puedo hacer eso para los 40 módulos externos que deben compilarse a continuación? ¡Ah! Esta definitivamente no es la forma correcta de resolver este problema.
Después de observar el error detenidamente, entiendo que se debe establecer una de las variables de entorno PREFIX o INSTALL_BASE y no ambas. Esa pista me ayudó a resolver el error.
Simplemente enumere todas las variables de entorno configuradas para Perl y grep PERL_MB_OPT
.
# perl -V | grep PERL_MB_OPT PERL_MB_OPT="--install_base /root/perl5"
Puedes ver que install_base
está configurado para PERL_MB_OPT
. Desactive la variable y estará listo para compilar OpenCA Base.
#unset PERL_MB_OPT
Ahora el problema se soluciona globalmente para cada módulo externo dentro de src/ext-modules
.