不能在Postgres.app中安装pg gem
我试图在我的本地机器上安装用于Postgres.app的pg gem。 我正在跑小牛队。
Postgres.app安装并运行良好,但我不能得到的gem工作。 我做了以下几点:
- 使用Postgres.app文档中的命令“env ARCHFLAGS =” – arch x86_64“gem install pg – –with-pg-config = / Applications / Postgres.app / Contents / MacOS / bin / pg_config”
- 更新了Homebrew并安装了Apple GCC 4.2
- 安装了Xcode开发人员工具
- 更新了我的$ 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上,这是我必须做的:
- 从app store安装Xcode工具
- 打开Xcode工具并接受许可证
-
现在运行(希望这是一个面向未来的命令):
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
这对我工作:
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
忘记版本号。 这可能不适用于每个(旧)版本,但我自己正在寻找一个片段,我可以保存和重用。