使用Postgres.app无法在Mavericks中安装pg gem

时间:2013-11-26 17:55:54

标签: ruby-on-rails macos postgresql osx-mavericks pg

我正在尝试安装pg gem以便在我的本地计算机上使用Postgres.app。我在竞选小牛队。

Postgres.app已安装且运行正常,但我无法让宝石工作。我做了以下事情:

  1. 使用命令'env ARCHFLAGS =“ - 来自Postgres.app文档的arch x86_64”gem install pg - --with-pg-config = / Applications / Postgres.app / Contents / MacOS / bin / pg_config“ / LI>
  2. 更新了Homebrew并安装了Apple GCC 4.2
  3. 安装了Xcode开发人员工具
  4. 更新了我的$ PATH以引用Postgres.app bin和lib目录
  5. 一切都没有成功。以下是我收到的具体错误消息:

    Building native extensions with: '--with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config'
    This could take a while...
    ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.
    
        /Users/Brian/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
    Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
    sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
    sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
    checking for libpq-fe.h... no
    Can't find the 'libpq-fe.h header
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers.  Check the mkmf.log file for more details.  You may
    need configuration options.
    
    Provided configuration options:
        --with-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/Brian/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
        --with-pg
        --without-pg
        --with-pg-config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/
    

    我很感激您提供的任何帮助。谢谢!

8 个答案:

答案 0 :(得分:250)

--with-pg-config可能有错误的路径,请检查它是否确实存在。

您可以找到pg_config的正确路径:

find /Applications -name pg_config

在最新的Postgres.app版本中,路径是:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

答案 1 :(得分:16)

在我的情况下(运行Postgres.app v9.3.4.2),它似乎只在前置环境架构标志时起作用:

env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 

答案 2 :(得分:13)

在全新的Mac上,这就是我必须做的事情:

  1. 从应用商店安装Xcode工具
  2. 打开Xcode工具并接受许可
  3. 现在运行(希望是一个面向未来的命令):

    version=$(ls /Applications/Postgres.app/Contents/Versions/ | tail -1) gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/$version/bin/pg_config .

  4. 如果您遇到问题,可以通过查看mkmf.log中的实际错误来解决问题,您可以通过运行找到它(如果使用rvm):

    cd ~/.rvm ; find . -name mkmf.log | grep pg
    

答案 3 :(得分:5)

我可以使用此命令安装pg

    gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

我通过运行

找到了我的路径
    sudo find / -name "pg_config"

我成功安装了pg-0.17.1

答案 4 :(得分:2)

要解决此问题,我在终端窗口中使用以下命令使用自制软件安装了postgres:

brew install postgres

Homebrew可以在这里找到

http://brew.sh

答案 5 :(得分:1)

这对我有用:

gem install pg -- --with-pg-config=`which pg_config`

答案 6 :(得分:1)

将postgress bin dir添加到路径中也可以解决问题。只需像这样添加垃圾箱。最近安装的最新符号链接确保此路径应该是“稳定的”#39;用于未来的版本升级。

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

答案 7 :(得分:0)

供将来参考,因为我们很多人都在为新版本号发布新路径:

目前我在latest看到名为/Applications/Postgres.app/Contents/Versions/的符号链接。

你应该能够做到:

$ gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

忘了版本号。这可能不适用于每个(较旧的)版本,但我自己正在寻找可以保存和重用的代码段。