Linux: Как установить модуль DBD::Pg?
Postgres DB уже установлена. Я не использую системный Perl. Я установил другой Perl в "/srv/data203806/Migration/CPAN/localperl/bin". Когда я пытаюсь установить, он запрашивает PATH TO pg_config:
[root1@frmrszvwb023 bin]# ./cpan install DBD::Pg
Reading '/root/.cpan/Metadata'
Database was generated on Fri, 07 Mar 2014 03:53:02 GMT
Running install for module 'DBD::Pg'
Running make for T/TU/TURNSTEP/DBD-Pg-3.0.0.tar.gz
Checksum for /root/.cpan/sources/authors/id/T/TU/TURNSTEP/DBD-Pg-3.0.0.tar.gz ok
CPAN.pm: Building T/TU/TURNSTEP/DBD-Pg-3.0.0.tar.gz
Configuring DBD::Pg 3.0.0
Path to pg_config?
No POSTGRES_HOME defined, cannot find automatically
Warning: No success on command[/srv/data203806/MUXmh-Migration/CPAN/localperl/bin/perl Makefile.PL]
'YAML' not installed, will not store persistent state
TURNSTEP/DBD-Pg-3.0.0.tar.gz
/srv/data203806/MUXmh-Migration/CPAN/localperl/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
Пожалуйста, помогите мне установить DBD::Pg? Как получить путь к pg_config?
9 ответов
Вы должны установить libpq-dev
Например, в Ubuntu:
sudo apt-get install libpq-dev
Просто столкнулся с этой проблемой, и в Ubuntu 16.04 Xenial пакет, который вы ищете:
apt-get install libdbd-pg-perl
В CentOS/RH вы можете это исправить, установив пакет perl-DBD-Pg с yum
sudo yum install perl-DBD-Pg
Из README:
МОНТАЖ:
Перед установкой, пожалуйста, используйте программу "cpansign -v" для криптографической проверки того, что ваша копия DBD::Pg является полной и действительной. Программа "cpansign" является частью Module::Signature, доступной от CPAN.
По умолчанию Makefile.PL использует App::Info, чтобы найти расположение библиотеки PostgreSQL и включить каталоги. Однако, если вы хотите управлять им самостоятельно, определите переменные окружения POSTGRES_INCLUDE и POSTGRES_LIB или задайте просто POSTGRES_HOME. Обратите внимание, что если вы скомпилировали PostgreSQL с поддержкой SSL, вы должны определить переменную среды POSTGRES_LIB и добавить к ней "-lssl" и "-lcrypto", например:
export POSTGRES_LIB = "/ usr / local / pgsql / lib -lssl -lcrypto"
Обычные шаги для установки DBD::Pg:
- Perl Makefile.PL
- делать
- сделать тест
- сделать установку
Выполните шаги с 1 по 2 как обычный пользователь, а не как пользователь root!
Если скрипт не может найти информацию о pg_config, он запросит путь к ней. Введите полный путь к файлу pg_config, включая имя самого файла.
Если вы хотите использовать модуль, прочитайте документацию.
Перед установкой модуля perl необходимо установить клиент для доступа к базе данных Postgres. Я просто устанавливаю сервер и заголовочные файлы:
sudo apt-get install postgresql
sudo apt-get install libpq-dev
Ты можешь попробовать:
locate pg_config
Это покажет что-то вроде:
/usr/pgsql-10/bin/pg_config
/usr/pgsql-10/include/ecpg_config.h
/usr/pgsql-10/include/ecpg_config_x86_64.h
Затем запустите:
POSTGRES_HOME=/usr/pgsql-10 ./cpan install DBD::Pg
Fedora 29, plenv, perl v5.18.0
После того, как я запустил plenv, я смог установить DBD::Pg с помощью cpanm, используя следующие команды:
sudo dnf install postgresql postgresql-devel
cpanm --quiet --notest DBD::Pg
Для ArchLinux (или любого дистрибутива, использующего Pacman):
pacman -S perl-dbd-pg
Для моей Ubuntu 22 работало это:
sudo apt install build-essential
sudo apt install cpanminus
sudo apt-get install -y postgresql-server-dev-all
sudo cpanm DBD::Pg