16

Postgres DB is already installed. I'm not using system perl I have installed another perl in "/srv/data203806/Migration/CPAN/localperl/bin". When I'm trying to install, It is asking for 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

Please help me to install DBD::Pg? How to get path to pg_config?

4

8 回答 8

28

刚刚遇到这个问题,在 Ubuntu 16.04 Xenial 上,您正在寻找的软件包是:

apt-get install libdbd-pg-perl
于 2017-01-17T02:20:16.080 回答
17

您必须安装libpq-dev,例如在 Ubuntu 上:

sudo apt-get install libpq-dev
于 2014-07-29T14:16:25.053 回答
12

在 CentOS/RH 上,您可以通过使用 yum 安装 perl-DBD-Pg 软件包来修复它

sudo yum install perl-DBD-Pg
于 2016-04-02T08:17:04.617 回答
6

自述文件

安装:

在安装之前,请使用“cpansign -v”程序以加密方式验证您的 DBD::Pg 副本是否完整且有效。程序“cpansign”是 Module::Signature 的一部分,可从 CPAN 获得。

默认情况下,Makefile.PL 使用 App::Info 来查找 PostgreSQL 库的位置并包含目录。但是,如果您想自己控制它,请定义环境变量 POSTGRES_INCLUDE 和 POSTGRES_LIB,或者只定义 POSTGRES_HOME。请注意,如果您已使用 SSL 支持编译 PostgreSQL,则必须定义 POSTGRES_LIB 环境变量并向其添加“-lssl”和“-lcrypto”,如下所示:

导出 POSTGRES_LIB="/usr/local/pgsql/lib -lssl -lcrypto"

安装 DBD::Pg 的常用步骤:

  1. perl 生成文件.PL
  2. 制作
  3. 做测试
  4. 进行安装

以普通用户身份执行步骤 1 到 2,而不是 root 用户!

如果脚本本身找不到 pg_config 信息,它会询问您的路径。在此处输入 pg_config 文件的完整路径,包括文件本身的名称。

如果要使用模块,请阅读文档。

于 2014-03-08T09:13:08.033 回答
5

在安装 perl 模块之前,您必须安装用于访问 Postgres DB 的客户端。我只是安装服务器和头文件:

sudo apt-get install postgresql
sudo apt-get install libpq-dev
于 2015-05-12T17:39:06.993 回答
3

你可以试试:

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

UPD

如果您仍然遇到问题pg_config,您可能需要将其添加到您的 PATH 中,例如:

export PATH=$PATH:/usr/pgsql-x.x/bin

其中 xx 是您的版本,例如 /usr/pgsql-9.2./bin。

于 2019-06-12T08:05:05.207 回答
2

对于 ArchLinux(或任何使用 Pacman 的发行版):

pacman -S perl-dbd-pg
于 2018-10-26T07:39:55.530 回答
1

Fedora 29、pleenv、perl v5.18.0

一旦我让 pleenv 工作,我就可以使用以下命令使用 cpanm 安装 DBD::Pg:

sudo dnf install postgresql postgresql-devel
cpanm --quiet --notest DBD::Pg
于 2019-03-15T00:18:40.220 回答