不能在Postgres.app中安装pg gem

我试图在我的本地机器上安装用于Postgres.app的pg gem。 我正在跑小牛队。

Postgres.app安装并运行良好,但我不能得到的gem工作。 我做了以下几点:

  1. 使用Postgres.app文档中的命令“env ARCHFLAGS =” – arch x86_64“gem install pg – –with-pg-config = / Applications / Postgres.app / Contents / MacOS / bin / pg_config”
  2. 更新了Homebrew并安装了Apple GCC 4.2
  3. 安装了Xcode开发人员工具
  4. 更新了我的$ PATH以引用Postgres.app bin和lib目录

一切都没有成功。 以下是我收到的具体错误消息:

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}/ 

我会很感激你可以提供任何帮助。 谢谢!

你可能有错误的path--with-pg-config ,检查它是否真的存在。

你可以find正确的path到pg_config

 find /Applications -name pg_config 

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

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

在我的情况下(运行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 

在一个全新的Mac上,这是我必须做的:

  1. 从app store安装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 .

如果遇到问题,可以通过检查mkmf.log中的实际错误(通过运行(如果使用rvm)可以find)来排除故障:

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

我能够用这个命令安装pg

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

我通过跑步find了自己的路

  sudo find / -name "pg_config" 

我成功安装了pg-0.17.1

为了解决这个问题,我在terminal窗口中使用以下代码安装了使用自制软件的postgres:

 brew install postgres 

家酿可以在这里find

http://brew.sh

这对我工作:

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

在path中添加postgress bin目录也是有用的。 就像这样添加箱子。 与最近的安装最新的符号链接确保这个path应该是“稳定的”未来的版本升级。

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

为了将来的参考,因为我们很多人正在发布新版本号的新path:

目前我在/Applications/Postgres.app/Contents/Versions/看到一个叫做latest的符号链接。

你应该能够做到:

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

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

Interesting Posts