Linux:如何安装DBD :: Pg模块?

时间:2014-03-08 03:46:47

标签: perl postgresql perl-module dbd-pg

已安装Postgres DB。我没有使用系统perl我在“/ srv / data203806 / Migration / CPAN / localperl / bin”中安装了另一个perl。当我尝试安装时,它要求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的路径?

8 个答案:

答案 0 :(得分:17)

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

sudo apt-get install libpq-dev

答案 1 :(得分:16)

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

apt-get install libdbd-pg-perl

答案 2 :(得分:7)

在CentOS / RH上你可以通过安装带yum的perl-DBD-Pg包修复它

sudo yum install perl-DBD-Pg

答案 3 :(得分:4)

来自README

  

INSTALLATION:

     

安装前,请使用“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.   
  5. make test
  6.   
  7. make install
  8.         

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

         

    如果脚本本身找不到pg_config信息,它会   问你要走的路。输入pg_config的完整路径   文件在这里,包括文件本身的名称。

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

答案 4 :(得分:3)

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

sudo apt-get install postgresql
sudo apt-get install libpq-dev

答案 5 :(得分:1)

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

pacman -S perl-dbd-pg

答案 6 :(得分:1)

Fedora 29,lenv,perl v5.18.0

一旦我开始工作,我就可以使用以下命令通过cpanm安装DBD :: Pg:

sudo dnf install postgresql postgresql-devel
cpanm --quiet --notest DBD::Pg

答案 7 :(得分:0)

您可以尝试:

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