не удается найти version.pm при попытке установить DBD-Pg-2.19.3 на Centos-7 - PullRequest
0 голосов
/ 01 февраля 2019

На Centos 7.

Оракул DBD установлен просто отлично У меня проблема с версией Postgresql.

Это скрипт, который я запускаю:

set -x -e
sudo yum -y install perl-devel
sudo yum -y install perl-DBI

cp ./DBD* /tmp
pushd /tmp
tar xvf DBD-Oracle-1.52.tar
tar xvf DBD-Pg-2.19.3.tar
pushd DBD-Oracle-1.52
perl Makefile.PL
sudo make
sudo make install
popd
pushd DBD-Pg-2.19.3
perl Makefile.PL
sudo make
sudo make install

perl Makefile.db postgresql возвращает

++ perl Makefile.PL
Configuring DBD::Pg 2.19.3
PostgreSQL version: 90224 (default port: 5432)
POSTGRES_HOME: (not set)
POSTGRES_INCLUDE: /usr/include
POSTGRES_LIB: /usr/lib64
OS: linux
Warning: prerequisite Test::More 0.61 not found.
Warning: prerequisite version 0 not found.
Could not eval '
                package ExtUtils::MakeMaker::_version;
                no strict;
                BEGIN { eval {
                    # Ensure any version() routine which might have leaked
                    # into this package has been deleted.  Interferes with
                    # version->import()
                    undef *version;
                    require version;
                    "version"->import;
                } }

                local $VERSION;
                $VERSION=undef;
                do {
                        use version; our $VERSION = qv('2.19.3');
                };
                $VERSION;
            ' in Pg.pm: Can't locate version.pm in @INC (@INC contains: t/lib /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 (eval 9) line 16, <$fh> line 19.
BEGIN failed--compilation aborted at (eval 9) line 16, <$fh> line 19.
WARNING: Setting VERSION via file 'Pg.pm' failed
 at /usr/share/perl5/vendor_perl/ExtUtils/MakeMaker.pm line 619.
Using DBI 1.627 (for perl 5.016003 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/vendor_perl/auto/DBI/
Writing Makefile for DBD::Pg
++ sudo make
Skip blib/lib/DBD/testme.tmp.pl (unchanged)
Skip blib/lib/Bundle/DBD/Pg.pm (unchanged)
Skip blib/lib/DBD/Pg.pm (unchanged)
gcc -c  -I/usr/include -I/usr/lib64/perl5/vendor_perl/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=90224 -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:13: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

, однако locate показывает:

/common/oracle/tfa/austin/tfa_home/perl/lib/5.22.0/version.pm
/common/oracle/tfa/austin/tfa_home/perl/lib/5.22.0/ExtUtils/MakeMaker/version.pm
/common/orainst/perl/lib/5.22.0/version.pm
/common/orainst/perl/lib/5.22.0/ExtUtils/MakeMaker/version.pm
/opt/oracle/product/18c/dbhomeXE/perl/lib/5.22.0/version.pm
/opt/oracle/product/18c/dbhomeXE/perl/lib/5.22.0/ExtUtils/MakeMaker/version.pm

Ответы [ 4 ]

0 голосов
/ 03 февраля 2019
set -x -e
sudo yum -y install perl-devel
sudo yum -y install perl-DBI
sudo yum -y install perl-version perl-Data-Dumper
sudo yum -y install postgresql-devel
cp ./DBD* /tmp
pushd /tmp
tar xvf DBD-Oracle-1.52.tar
tar xvf DBD-Pg-2.19.3.tar
pushd DBD-Oracle-1.52
perl Makefile.PL
sudo make
sudo make install
popd
pushd DBD-Pg-2.19.3
perl Makefile.PL
sudo make
sudo make install
cd ~/ora2pg
perl Make.PL
sudo make
sudo make install
0 голосов
/ 01 февраля 2019

Вам необходимо установить полное ядро ​​Perl.В CentOS 7 этот пакет называется perl-core, а perl - просто интерпретатор, он не подходит, если вы действительно хотите использовать его самостоятельно.Полный Perl был переименован в perl (а интерпретатор переименован в perl-interpreter) в последних версиях Fedora.

yum install perl-core

Еще лучше собрать свой собственный Perl , поэтомучто вы можете устанавливать в него вещи по своему усмотрению, не связываясь с системным Perl, который может использоваться другими вещами и не ожидать этих обновлений.Если вы придерживаетесь системного Perl, рекомендуется изолировать любые модули, которые вы устанавливаете, без менеджера пакетов, используя local :: lib или Carton .

Это выглядиткак у вас уже есть отдельная сборка Perl, так как пути, содержащие 5.22.0, не относятся к системному perl в CentOS 7. Эта установка Perl не будет управляться или иметь отношение к чему-либо, что вы устанавливаете с yum, если это не из Oracleрепозиторий.Правильный способ установки модулей, которые могут обрабатывать зависимости для этого модуля, - это клиент cpan или другие клиенты, например cpanm .Просто запустите исполняемый файл для Perl, в который вы хотите установить и использовать модули.

0 голосов
/ 01 февраля 2019

Если вы довольны использованием системного Perl и связанной с ним библиотеки Perl (как вы, похоже, работаете yum install perl-DBI), тогда вы можете использовать предварительно упакованную версию DBD :: Pg.

 sudo yum install perl-DBD-Pg

И это автоматически вытянет любые другие необходимые RPM.

DBD :: Oracle сложнее.Предварительно собранный пакет недоступен (предположительно, потому что Oracle не является открытым исходным кодом), но вы, вероятно, могли бы создать свой собственный RPM, следуя методу, который я описал несколько лет назад .Вам необходимо убедиться, что клиентские библиотеки Oracle (и связанные с ними файлы заголовков) уже установлены.

0 голосов
/ 01 февраля 2019

Это (текущая) проблема prerequisite Test::More 0.61 not found.
Это решение https://superuser.com/a/1111321/156111

"

yum install make cpan

Затем настройте свой Perl с CPAN. Просто введите cpanв командной строке и ответьте «да» на все интерактивные вопросы.

Затем обновите свой менеджер cpan:

#cpan install Bundle::CPAN
#cpan reload cpan

А теперь установите интересующие вас пакеты:

#cpan install Test::More

«

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...