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:

  1. Perl Makefile.PL
  2. делать
  3. сделать тест
  4. сделать установку

Выполните шаги с 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
Другие вопросы по тегам