【问题标题】:Linux: How to install DBD::Pg module?Linux:如何安装 DBD::Pg 模块?
【发布时间】:2014-03-08 03:46:46
【问题描述】:

Postgres 数据库已安装。我没有使用系统 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 的路径?

【问题讨论】:

    标签: perl postgresql perl-module dbd-pg


    【解决方案1】:

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

    apt-get install libdbd-pg-perl
    

    【讨论】:

      【解决方案2】:

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

      sudo apt-get install libpq-dev
      

      【讨论】:

      • 注意,这不是真正的主题,但我在遇到错误Can't locate DBD/Pg.pm in @INC 后到达此页面。对我来说,在我的情况下(在 postgres docker 映像中)仅安装 libpq-dev 仍然会导致相同的错误消息。安装 libdbd-pg-perl 后(如 @FernandoNunes 所建议),模块已安装,似乎包含此 libpq-dev 依赖项。只是为遇到该错误后到达这里的其他人提及这一点。
      • 我认为,安装 libdbd-pg-perl 可以解决问题。
      【解决方案3】:

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

      sudo yum install perl-DBD-Pg
      

      【讨论】:

        【解决方案4】:

        来自README:

        安装:

        安装前,请使用“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 Makefile.PL
        2. 制作
        3. 进行测试
        4. 进行安装

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            你可以试试:

            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
            

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

            【讨论】:

            • 在我的情况下,我找不到/usr/pgsql-xx/include 的路径,所以cpan install DBD::Pg 不起作用。但是@user2086514 的answer 对我有用。
            【解决方案7】:

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

            pacman -S perl-dbd-pg
            

            【讨论】:

              【解决方案8】:

              Fedora 29、pleenv、perl v5.18.0

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

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

              【讨论】:

                猜你喜欢
                • 2011-04-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-11-16
                • 1970-01-01
                • 2023-04-07
                • 1970-01-01
                相关资源
                最近更新 更多