我正在尝试安装pg gem以便在我的本地计算机上使用Postgres.app。我在竞选小牛队。
Postgres.app已安装且运行正常,但我无法让宝石工作。我做了以下事情:
一切都没有成功。以下是我收到的具体错误消息:
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}/
我很感激您提供的任何帮助。谢谢!
答案 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上,这就是我必须做的事情:
现在运行(希望是一个面向未来的命令):
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):
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)
答案 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
忘了版本号。这可能不适用于每个(较旧的)版本,但我自己正在寻找可以保存和重用的代码段。