GNU/Linux >> Belajar Linux >  >> Linux

Perbaiki kesalahan mulai OpenCA Tidak dapat menemukan versi.pm

Yah, saya mendapat kesalahan “install_driver(Pg) failed:Can't locate version.pm ” saat memulai daemon OpenCA 1.5.1 di CentOS. Tutorial ini akan menjelaskan cara memperbaiki kesalahan mulai OpenCA Can't locate version.pm. Sebelum saya berbicara tentang solusinya, lihat pesan kesalahan lengkapnya.

Memulai daemon OpenCA:

# ./etc/init.d/openca start

Meskipun perintah di atas tidak memunculkan pesan apa pun, saya dapat menemukan kesalahan terperinci di var/openca/log/stderr.log . Di bawah ini adalah cuplikannya.

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.

Pesan kesalahan menunjukkan bahwa ia tidak dapat menemukan version.pm file dan mungkin modul yang DBD::Pg belum terpasang sepenuhnya. Mari kita instal DBD::Pg .

Instal DBD::Pg menggunakan cpan

cpan[1]> install DBD::Pg

Namun, cpan gagal menginstal DBD::Pg dan keluar dengan pesan kesalahan di bawah ini.

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

Jadi saya telah menginstal DBI::DBD modul sebelum menginstal DBD::Pg . Mari kita lanjutkan dan instal DBI::DBD

Instal 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

Ya, sekarang saya telah menginstal DBI::DBD modul, mari coba lagi DBD::Pg instalasi melalui cpan .

cpan> install DBD::Pg

Ah! kesalahan lain:

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

Sekarang kesalahannya adalah “kesalahan fatal:libpq-fe.h:Tidak ada file atau direktori seperti itu “. Artinya, saya harus menginstal paket atau pustaka yang dikirimkan libpq-fe.h mengajukan. Setelah googling, saya mengerti ‘libpg-dev ' adalah perpustakaan, tapi itu untuk mesin Ubuntu dan Debian. Jadi paket yang sesuai untuk CentOS adalah ‘postgresql-devel ‘.

Instal postgresql-devel menggunakan YUM

# yum install postgresql-devel
:::::::::::::::::
Installed:
 postgresql-devel.x86_64 0:9.2.23-3.el7_4

Complete!

Oke. Semoga cpan sekarang harus menginstal DBD::Pg tanpa masalah apapun. Mari kita periksa.

Menginstal DBD::Pg lagi menggunakan 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

Apa! cpan mengatakan instal sepertinya tidak mungkin? Tidak, mari kita instal secara manual. Untuk melakukan itu, saya harus pergi ke .cpan direktori yang terletak di bawah rumah pengguna dan cari DBD-PG yang diunduh oleh cpan.

# cd /root/.cpan/build/DBD-Pg-3.7.4-ScxNAT

Mari kita buat Makefile sekarang.

# 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

Dingin. Bagaimana dengan membuat?

#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

Keren lagi, gimana kalau install?

# 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

Ya. Saya sekarang telah berhasil menginstal “DBD::Pg ” modul. Sekarang saya memulai daemon OpenCA dan berhasil tanpa masalah.

Semoga ini bisa membantu seseorang di luar sana.


Linux
  1. Perbaiki kesalahan Class ZipArchive tidak ditemukan [PHP 7]

  2. Kesalahan dalam file Sudoers? Inilah cara Anda memperbaikinya.

  3. Tidak dapat menemukan Module/Load/Conditional.pm [Solusi]

  1. Tidak dapat menemukan Test/Harness.pm perl Error:[Solution]

  2. Tidak dapat menemukan Kalender/Simple.pm [RT Terpecahkan]

  3. Gimp Tidak Akan Mulai, Gegl Error?

  1. Tidak dapat terhubung ke kesalahan server MySQL 111

  2. kesalahan ldconfig:bukan tautan simbolik

  3. Kesalahan saat menggunakan glibc versi terbaru