Bene, ho ricevuto un errore "install_driver(Pg) non riuscito:impossibile individuare version.pm " durante l'avvio del demone OpenCA 1.5.1 su CentOS. Questo tutorial spiegherà come correggere l'errore di avvio di OpenCA Impossibile individuare version.pm. Prima di parlare della soluzione, dai un'occhiata al messaggio di errore completo.
Avvio del demone OpenCA:
# ./etc/init.d/openca start
Sebbene il comando precedente non abbia generato alcun messaggio, sono riuscito a trovare un errore dettagliato in var/openca/log/stderr.log
. Di seguito è riportato l'istantanea di esso.
install_driver(Pg) failed: Can't locate version.pm in @INC (@INC contains: /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 .) at /home/openca/lib/openca/perl_modules/perl5/x86_64-linux-thread-multi/DBD/Pg.pm line 19. BEGIN failed--compilation aborted at /home/openca/lib/openca/perl_modules/perl5/x86_64-linux-thread-multi/DBD/Pg.pm line 19. Compilation failed in require at (eval 288) line 3. Perhaps a module that DBD::Pg requires hasn't been fully installed at /home/openca/lib/openca/perl_modules/perl5/OpenCA/DBI.pm line 914. Compilation failed in require at /home/openca/etc/openca/openca_start line 66.
Il messaggio di errore indica che non è stato possibile individuare version.pm
file e forse un modulo che DBD::Pg
non è stato installato completamente. Installiamo DBD::Pg
.
Installa DBD::Pg utilizzando cpan
cpan[1]> install DBD::Pg
Tuttavia, cpan
installazione di DBD::Pg
non riuscita ed è uscito con il seguente messaggio di errore.
Could not load DBI::DBD - is the DBI module installed? No 'Makefile' created'YAML' not installed, will not store persistent state TURNSTEP/DBD-Pg-3.7.4.tar.gz /usr/bin/perl Makefile.PL -- NOT OK Running make test Make had some problems, won't test Running make install Make had some problems, won't install Could not read metadata file. Falling back to other methods to determine prerequisites Failed during this command: TURNSTEP/DBD-Pg-3.7.4.tar.gz : writemakefile NO -- No 'Makefile' created
Quindi ho installato DBI::DBD
modulo prima di installare DBD::Pg
. Andiamo avanti e installiamo DBI::DBD
Installa DBI::DBD
cpan> install DBI::DBD Appending installation info to /usr/lib64/perl5/perllocal.pod TIMB/DBI-1.640.tar.gz /usr/bin/make install -- OK
Sì, ora ho installato DBI::DBD
modulo, riproviamo DBD::Pg
installazione tramite cpan
.
cpan> install DBD::Pg
Ah! un altro errore:
cp lib/Bundle/DBD/Pg.pm blib/lib/Bundle/DBD/Pg.pm cp 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.c gcc -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 -Wall -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" Pg.c In file included from Pg.xs:14:0: Pg.h:36:22: fatal error: libpq-fe.h: No such file or directory #include "libpq-fe.h" ^ compilation terminated. make: *** [Pg.o] Error 1 TURNSTEP/DBD-Pg-3.7.4.tar.gz /usr/bin/make -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: TURNSTEP/DBD-Pg-3.7.4.tar.gz : make NO
Ora l'errore è "errore irreversibile:libpq-fe.h:nessun file o directory di questo tipo “. Significa che dovevo installare un pacchetto o una libreria che spedisce libpq-fe.h
file. Dopo aver cercato su Google, ho capito "libpg-dev
' è la libreria, ma è per macchine Ubuntu e Debian. Quindi il pacchetto corrispondente per CentOS è "postgresql-devel
'.
Installa postgresql-devel utilizzando YUM
# yum install postgresql-devel ::::::::::::::::: Installed: postgresql-devel.x86_64 0:9.2.23-3.el7_4 Complete!
Ok. Si spera, cpan
ora dovrebbe installare DBD::Pg
senza alcun problema. Diamo un'occhiata.
Installazione di DBD::Pg di nuovo utilizzando cpan
cpan[3]> install DBD::Pg Running install for module 'DBD::Pg' Running make for T/TU/TURNSTEP/DBD-Pg-3.7.4.tar.gz Has already been unwrapped into directory /root/.cpan/build/DBD-Pg-3.7.4-JtTHAe Could not make: Unknown error Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible
Che cosa! cpan dice che l'installazione sembra impossibile? No, installiamolo manualmente. Per farlo, dovevo andare su .cpan
directory situata sotto la home dell'utente e individuare DBD-PG scaricato da cpan.
# cd /root/.cpan/build/DBD-Pg-3.7.4-ScxNAT
Creiamo Makefile
ora.
# perl Makefile.PL Configuring DBD::Pg 3.7.4 PostgreSQL version: 90223 (default port: 5432) POSTGRES_HOME: (not set) POSTGRES_INCLUDE: /usr/include POSTGRES_LIB: /usr/lib64 OS: linux Checking if your kit is complete... Looks good Using DBI 1.64 (for perl 5.016003 on x86_64-linux-thread-multi) installed in /usr/local/lib64/perl5/auto/DBI/ Writing Makefile for DBD::Pg
Freddo. E la marca?
#make chmod 755 blib/arch/auto/DBD/Pg/Pg.so cp Pg.bs blib/arch/auto/DBD/Pg/Pg.bs chmod 644 blib/arch/auto/DBD/Pg/Pg.bs Manifying blib/man3/Bundle::DBD::Pg.3pm Manifying blib/man3/DBD::Pg.3pm
Fresco di nuovo, e per quanto riguarda l'installazione?
# make install Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/local/lib64/perl5/auto/DBD/Pg/Pg.so Installing /usr/local/lib64/perl5/auto/DBD/Pg/Pg.bs Installing /usr/local/lib64/perl5/DBD/Pg.pm Installing /usr/local/lib64/perl5/Bundle/DBD/Pg.pm Installing /usr/local/share/man/man3/Bundle::DBD::Pg.3pm Installing /usr/local/share/man/man3/DBD::Pg.3pm Appending installation info to /usr/lib64/perl5/perllocal.pod
Sì. Ora ho installato con successo “DBD::Pg
modulo ". Ora ho avviato il demone OpenCA e ha funzionato senza problemi.
Spero che aiuti qualcuno là fuori.