【问题标题】:pg 1.0.0 `fatal error: 'libpq-fe.h' file not found`pg 1.0.0`致命错误:找不到'libpq-fe.h'文件`
【发布时间】:2018-10-20 16:14:57
【问题描述】:

安装 pg (1.0.0) 时出错,Bundler 无法继续

我在安装包时遇到问题,无法完成安装。

我可以做些什么来完成捆绑包?

  find_executable: checking for pg_config... -------------------- no

    --------------------

    find_header: checking for libpq-fe.h... -------------------- no

    "clang -o conftest -I/Users/leotyndall/.rbenv/versions/2.4.2/include/ruby-2.4.0/x86_64-darwin17 -I/Users/leotyndall/.rbenv/versions/2.4.2/include/ruby-2.4.0/ruby/backward -I/Users/leotyndall/.rbenv/versions/2.4.2/include/ruby-2.4.0 -I. -I/Users/leotyndall/.rbenv/versions/2.4.2/include  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT    -O3 -Wno-error=shorten-64-to-32  -pipe conftest.c  -L. -L/Users/leotyndall/.rbenv/versions/2.4.2/lib -L. -L/Users/leotyndall/.rbenv/versions/2.4.2/lib  -fstack-protector -L/usr/local/lib     -lruby-static -framework CoreFoundation  -lpthread -ldl -lobjc "
    checked program was:
    /* begin */
    1: #include "ruby.h"
    2: 
    3: int main(int argc, char **argv)
    4: {
    5:   return 0;
    6: }
    /* end */

        "clang -E -I/Users/leotyndall/.rbenv/versions/2.4.2/include/ruby-2.4.0/x86_64-darwin17 - 
             I/Users/leotyndall/.rbenv/versions/2.4.2/include/ruby- 
         2.4.0/ruby/backward - 
         I/Users/leotyndall/.rbenv/versions/2.4.2/include/ruby-2.4.0 -I. - 
         I/Users/leotyndall/.rbenv/versions/2.4.2/include  -D_XOPEN_SOURCE - 
         D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT    -O3 -Wno- 
         error=shorten-64-to-32  -pipe  conftest.c -o conftest.i"
         conftest.c:3:10: fatal error: 'libpq-fe.h' file not found
         #include <libpq-fe.h>
             ^~~~~~~~~~~~
         1 error generated.
         checked program was:
         /* begin */
         1: #include "ruby.h"
         2: 
         3: #include <libpq-fe.h>
        /* end */

    --------------------


     extconf failed, exit code 1


        An error occurred while installing pg (1.0.0), and Bundler cannot continue.
        Make sure that `gem install pg -v '1.0.0'` succeeds before bundling.

【问题讨论】:

  • 尝试使用较低版本的 pg,在 Gemfile 中说 pg -v '0.18'
  • 这可能与您的$PATH 设置有关。您可以在终端中通过echo "${PATH//:/\n}" 的输出吗?还有你的 Gemfile 吗?
  • 将最具体的错误消息移至标题。为清晰起见重新格式化。将问题移至文本顶部并重新措辞以清楚起见。
  • 我遇到了类似的问题,找不到 pg_config 和This solved my problem

标签: ruby-on-rails ruby rubygems clang


【解决方案1】:

尝试为您的操作系统安装 libpq-dev 或等效的:

  • 对于 Ubuntu 系统:sudo apt-get install libpq-dev
  • Red Hat Linux (RHEL) 系统上:yum install postgresql-devel
  • 对于 Mac Homebrew: brew install postgresql
  • 对于 Mac MacPorts PostgreSQL:gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • 对于OpenSusezypper in postgresql-devel

【讨论】:

  • 在 OSX (HeighSierra) 上我不知道如何只安装 postgres 客户端。所以你必须安装 postgresql(或者简单地用 brew 安装 postgres)来获取需要的文件 libpq-fe.h。
【解决方案2】:

对于macos,上述答案对我不起作用或不实用。我不想安装所有的 postgres。

$ brew install libpq
$ bundle config --local build.pg --with-opt-dir="/usr/local/opt/libpq"
$ bundle install

参考:https://michaelrigart.be/install-pg-ruby-gem-without-postgresql/

【讨论】:

    【解决方案3】:

    我通过安装库解决了这个问题

    brew install libpqxx

    接下来,正常安装pg...就可以使用gem了

    gem install pg

    【讨论】:

      【解决方案4】:
      brew install libpq
      
      gem install pg -v '1.2.3' --source 'https://rubygems.org/' -- --with-pg-config=/opt/homebrew/Cellar/libpq/13.2/bin/pg_config
      

      【讨论】:

      • 我的本地路径略有不同:/usr/local/opt/libpq/bin/pg_config,但除此之外,这很有魅力。在大苏尔。
      猜你喜欢
      • 2012-10-16
      • 2015-05-03
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 2015-01-20
      相关资源
      最近更新 更多