Apakah Anda mendapatkan kesalahan “Tidak dapat membangun modul ” saat mengkompilasi OpenCA base 1.5.1? Jika ya, maka tutorial ini akan menjelaskan cara memperbaikinya.
Nah, berikut pesan error selengkapnya.
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
Cara memperbaiki kesalahan modul Tidak dapat membangun
Saya mendapatkan kesalahan “Tidak dapat membangun modul” untuk paket Authen::SASL
. Tetapi kesalahan ini dapat terjadi untuk semua modul Perl.
Pada awalnya, itu tampak seperti paket Authen::SASL
tidak diinstal pada sistem. Jadi saya menginstalnya menggunakan perintah di bawah ini:
# perl -MCPAN -e 'install Authen::SASL'
Secara default pada CentOS 6, perintah di atas menginstal Authen::SASL
versi 2.16. Namun, itu tidak menyelesaikan kesalahan. Kemudian saya perhatikan semua modul eksternal yang diperlukan untuk instalasi OpenCA Base terletak di bawah src/ext-modules
map. Untuk men-debug masalah, saya harus mengubah direktori ke folder modul masing-masing dan memeriksa file lognya. Misalnya, modul Perl eksternal yang menyebabkan error ini adalah Authen-SASL-2.15. Jadi izinkan saya mengubah direktori ke Authen-SASL-2.15 di bawah src/ext-modules
.
$ cd src/ext-modules/Authen-SASL-2.15
Menemukan kesalahan di bawah ini dalam file log:
$ vi log.err Only one of PREFIX or INSTALL_BASE can be given. Not both.
Apa arti kesalahan itu? Saya menjalankan perl Makefile.PL.
[src/ext-modules/Authen-SASL-2.15]$ perl Makefile.PL
Anehnya, perintah di atas tidak menimbulkan kesalahan apa pun. Sekarang saya mencoba make
di openca-base-1.5.1
direktori dan melihatnya melewati modul Perl tertentu dan gagal saat mengompilasi modul berikutnya – Convert::ASN1
.
Build::External PERL modules Building (Authen::SASL::215) ... Ok Building (Convert::ASN1::022) ... ERROR::Can not build module
Saya tahu dengan cara yang sama saya dapat beralih ke Convert::ASN1
folder di bawah src/ext-modules
dan coba perl Makefile.PL
dan kembali ke direktori dasar OpenCA dan jalankan make
untuk memperbaiki kesalahan. Tapi bisakah saya melakukannya untuk semua 40 modul eksternal yang perlu dikompilasi selanjutnya? Ah! Ini jelas bukan cara yang tepat untuk menyelesaikan masalah ini.
Setelah melihat kesalahan dengan cermat, saya mengerti bahwa salah satu dari variabel lingkungan PREFIX atau INSTALL_BASE harus disetel dan bukan keduanya. Petunjuk itu membantu saya mengatasi kesalahan.
Cukup daftarkan semua variabel lingkungan yang disetel untuk Perl dan grep PERL_MB_OPT
.
# perl -V | grep PERL_MB_OPT PERL_MB_OPT="--install_base /root/perl5"
Anda dapat melihat bahwa install_base
disetel untuk PERL_MB_OPT
. Hapus variabel dan Anda dapat mengompilasi OpenCA Base.
#unset PERL_MB_OPT
Sekarang masalah telah diperbaiki secara global untuk setiap modul eksternal di dalam src/ext-modules
.