Eh bien, j'ai reçu une erreur "install_driver(Pg) failed :Can't locate version.pm ” lors du démarrage du démon OpenCA 1.5.1 sur CentOS. Ce didacticiel explique comment corriger l'erreur de démarrage OpenCA Impossible de localiser version.pm. Avant de parler de la solution, jetez un œil au message d'erreur complet.
Démarrage du démon OpenCA :
# ./etc/init.d/openca start
Bien que la commande ci-dessus n'ait généré aucun message, j'ai pu trouver une erreur détaillée dans var/openca/log/stderr.log
. Ci-dessous, un aperçu de celui-ci.
install_driver(Pg) a échoué :Impossible de localiser version.pm dans @INC (@INC contient :/home/openca/lib/openca/perl_modules/perl5/x86_64-linux-thread-multi /home/openca/lib /openca/perl_modules/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) à /home/openca/lib/openca/perl_modules/perl5/x86_64-linux-thread-multi/DBD/Pg.pm ligne 19.BEGIN a échoué -- la compilation a été abandonnée à /home/openca/lib/openca/perl_modules/ perl5/x86_64-linux-thread-multi/DBD/Pg.pm line 19. La compilation a échoué dans require at (eval 288) line 3. Peut-être qu'un module requis par DBD ::Pg n'a pas été entièrement installé dans /home/openca /lib/openca/perl_modules/perl5/OpenCA/DBI.pm ligne 914. Échec de la compilation requise à /home/openca/etc/openca/openca_start ligne 66.
Le message d'erreur indique qu'il n'a pas pu localiser version.pm
file et peut-être un module qui DBD::Pg
n'a pas été installé complètement. Installons DBD::Pg
.
Installer DBD::Pg à l'aide de cpan
cpan[1]> installer DBD::Pg
Cependant, cpan
échec de l'installation de DBD::Pg
et quitté avec le message d'erreur ci-dessous.
Impossible de charger DBI::DBD - le module DBI est-il installé ? Aucun 'Makefile' créé 'YAML' non installé, ne stockera pas l'état persistant TURNSTEP/DBD-Pg-3.7.4.tar.gz /usr/bin/perl Makefile.PL -- NOT OKRunning make test Make a eu quelques problèmes, a gagné 't testL'exécution de make install Make a rencontré des problèmes, ne sera pas installé Impossible de lire le fichier de métadonnées. Revenir à d'autres méthodes pour déterminer les prérequis.J'ai donc dû installer
DBI::DBD
module avant d'installerDBD::Pg
. Continuons et installonsDBI::DBD
Installer DBI::DBD
cpan> install DBI::DBDAjout des informations d'installation à /usr/lib64/perl5/perllocal.pod TIMB/DBI-1.640.tar.gz /usr/bin/make install -- OKOui, j'ai maintenant installé
DBI::DBD
module, réessayonsDBD::Pg
installation viacpan
.cpan> installer DBD::PgAh ! une autre erreur :
cp lib/Bundle/DBD/Pg.pm blib/lib/Bundle/DBD/Pg.pmcp Pg.pm blib/lib/DBD/Pg.pm/usr/bin/perl -p -e "s/~ DRIVER~/Pg/g; s/^do\(/dontdo\(/" /usr/local/lib64/perl5/auto/DBI/Driver.xst> Pg.xsi/usr/bin/perl /usr/share/ perl5/vendor_perl/ExtUtils/xsubpp -typemap /usr/share/perl5/ExtUtils/typemap Pg.xs> Pg.xsc &&mv Pg.xsc Pg.cgcc -c -I/usr/include -I/usr/local/lib64 /perl5/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPGLIBVERSION=90223 -DPGDEFPORT=5432 -O2 -g -pipe -Mur -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc -DVERSION=\"undef\" -DXS_VERSION=\"undef\" -fPIC "-I/usr/lib64/perl5/CORE" Fichier Pg.cIn inclus à partir de Pg.xs:14 :0:Pg.h:36:22 :erreur fatale :libpq-fe.h :aucun fichier ou répertoire de ce type #include "libpq-fe.h" ^compilation terminated.make:*** [Pg.o] Erreur 1 TURNSTEP/DBD-Pg-3.7.4.tar.gz /usr/bin/make -- NOT OKRunning make test Impossible de tester sans succès makeL'exécution de make install Make a renvoyé un état incorrect, l'installation semble impossibleÉchec lors de cette commande :TURNSTEP/DBD-Pg-3.7.4.tar.gz :make NOMaintenant, l'erreur est "erreur fatale :libpq-fe.h :aucun fichier ou répertoire de ce type “. Cela signifie que j'ai dû installer un paquet ou une bibliothèque qui fournit
libpq-fe.h
dossier. Après avoir cherché sur Google, j'ai compris 'libpg-dev
‘ est la bibliothèque, mais c'est pour les machines Ubuntu et Debian. Ainsi, le package correspondant pour CentOS est 'postgresql-devel
‘.Installer postgresql-devel à l'aide de YUM
# yum install postgresql-devel:::::::::::::::::Installed :postgresql-devel.x86_64 0:9.2.23-3.el7_4Complete !D'accord. Espérons que
cpan
devrait maintenant installerDBD::Pg
sans aucun probléme. Allons vérifier.Réinstaller DBD::Pg à l'aide de cpan
cpan[3]> install DBD::PgRunning install for module 'DBD::Pg'Running make for T/TU/TURNSTEP/DBD-Pg-3.7.4.tar.gz A déjà été déballé dans le répertoire /root /.cpan/build/DBD-Pg-3.7.4-JtTHAeImpossible de créer :erreur inconnueL'exécution du test de création ne peut pas être testée sans succès.Quoi! cpan dit que l'installation semble impossible ? Non, installons-le manuellement. Pour ce faire, je devais aller sur
.cpan
répertoire situé sous le domicile de l'utilisateur et localisez DBD-PG téléchargé par cpan.# cd /root/.cpan/build/DBD-Pg-3.7.4-ScxNATCréons
Makefile
maintenant.# perl Makefile.PLConfiguring DBD::Pg 3.7.4Version PostgreSQL :90223 (port par défaut :5432)POSTGRES_HOME :(non défini)POSTGRES_INCLUDE :/usr/includePOSTGRES_LIB :/usr/lib64OS :linuxVérification si votre kit est complet.. .Ça a l'air bienUtiliser DBI 1.64 (pour perl 5.016003 sur x86_64-linux-thread-multi) installé dans /usr/local/lib64/perl5/auto/DBI/Writing Makefile for DBD::PgFrais. Qu'en est-il de la fabrication ?
#makechmod 755 blib/arch/auto/DBD/Pg/Pg.socp Pg.bs blib/arch/auto/DBD/Pg/Pg.bschmod 644 blib/arch/auto/DBD/Pg/Pg.bsManifying blib /man3/Bundle::DBD::Pg.3pmManifying blib/man3/DBD::Pg.3pmEncore cool, qu'en est-il de l'installation ?
# make installFiles found in blib/arch :installation de fichiers dans blib/lib dans l'arbre de bibliothèque dépendant de l'architectureInstallation /usr/local/lib64/perl5/auto/DBD/Pg/Pg.soInstallation /usr/local/lib64/perl5/ auto/DBD/Pg/Pg.bsInstallation /usr/local/lib64/perl5/DBD/Pg.pmInstallation /usr/local/lib64/perl5/Bundle/DBD/Pg.pmInstallation /usr/local/share/man/man3/ Bundle ::DBD::Pg.3pmInstallation de /usr/local/share/man/man3/DBD::Pg.3pmAjout des informations d'installation à /usr/lib64/perl5/perllocal.podOui. J'ai maintenant installé avec succès "
DBD::Pg
”module. Maintenant, j'ai démarré le démon OpenCA et cela a fonctionné sans problème.J'espère que cela aidera quelqu'un là-bas.