在OS X上安装PG gem - 无法构建本机扩展

Mel*_*Mel 175 postgresql macos gem ruby-on-rails

似乎很多其他人在安装pg gem时遇到了问题.没有为他人提出的解决方案对我有用.

我试图安装pg gem和postgres.app.pg gem不会安装.我得到的第一个错误是:

安装pg(0.17.0)时发生错误,Bundler无法继续.gem install pg -v '0.17.0'在捆绑之前确保成功.

关于将我的gem安装指向pg的配置的安装建议失败,并显示以下错误消息(此论坛上的许多其他人遇到过):

Failed to build native extensions... Results logged to /Users/melanie/.rvm/gems/ruby-1.9.3-p448/gems/pg-0.17.0/ext/gem_make.out
Run Code Online (Sandbox Code Playgroud)

我不知道如何查找或访问此日志文件以搜索更多线索.

当我尝试使用sudo apt-get install命令时,我也收到错误消息(找不到命令).在过去的6个小时里,我一直在搜索这个论坛,尝试了每一条建议,让pg与我的rails项目合作.

我找不到关于如何更改路径的建议,或者具体地说,需要进行哪些更改.我which pg_config返回一个文件源.我已经使用命令来使用该配置安装pg.它失败.

有这么多人遇到麻烦.许多答案都表明了自制软件.我不得不删除它,因为它抛出了其他问题.

shi*_*las 422

对我来说同样的错误,直到我下载OS X 10.9(Mavericks)之后我才体验到它.叹了口气,另一个OS升级头疼.

这是我修复它的方式(使用自制程序):

  • 安装另一个Xcode工具版本(输入brew update终端将提示您更新Xcode构建工具)
  • brew update
  • brew install postgresql

之后gem install pg对我有用.

  • 在Mavericks升级之后试图修复我的Rails数据库两天头痛之后,这对我来说很复杂,非常感谢. (7认同)
  • 这对我来说也很有用 - 在新的Mavericks安装上.谢谢! (4认同)
  • 1. `brew update` 2. `brew install postgresql` 3. `gem install pg` 4. `bundle install` (2认同)

san*_*ota 221

如果您使用的是Ubuntu,请尝试安装以下lib文件

sudo apt-get install libpq-dev
Run Code Online (Sandbox Code Playgroud)

然后

gem install pg

为我工作.

  • 对于CentOS`yum install postgresql-devel` (5认同)
  • 也为我工作过.我正在使用ubuntu 13.10. (4认同)
  • 只需确保正确输入即可.它不是`libpg-dev`; 它的Q不是P!我花了10分钟才弄明白这一点. (4认同)

Jon*_*Jon 49

我正在使用OS X Mavericks(版本10.9)

当我运行上面的内容时,我得到以下消息:如果PostgreSQL 9的版本失败并且您安装了版本8.x.

所以我运行以下命令:

ARCHFLAGS="-arch x86_64" gem install pg
Run Code Online (Sandbox Code Playgroud)

这对我有用,我希望这有助于某人:)

  • nb如果以root身份安装(无论出于何种原因),sudo会在变量之前执行*:sudo ARCHFLAGS =" - arch x86_64"gem install pg` (5认同)
  • +1,我尝试了其他人,但最后我通过gem安装了这个解决方案的pg. (2认同)

小智 41

好吧我也有这个问题(psql是v 9.3.0,ruby是v 2.1.2),对我有用的解决方案是首先设置bundle配置设置:

bundle config build.pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

这个答案终于让我明白了:https://stackoverflow.com/a/9235107/3546680

  • 如果您使用postgres.app,则此方法为**首选**.使用Homebrew可能会修复本机扩展问题,但是有两个postgres应用程序会产生冲突(如端口分配)请参阅Sayanees在http://stackoverflow.com/questions/19569031/error-failed-to-build-gem-上的回答本机扩展上,小牛 (6认同)
  • 这绝对是Postgres.app的正确答案. (4认同)
  • 这也适用于优胜美地. (2认同)

Ali*_*ani 23

我尝试了几个小时,但以下最终修复了它(我在OS X 10.9.4上):

  1. 安装Xcode命令行工具(Apple Developer站点)
  2. brew卸载postgresql
  3. brew安装postgresql
  4. ARCHFLAGS =" - arch x86_64"gem install pg


小智 7

轻松一步

  1. brew install postgresql
  2. gem install pg -v 'your version'


小智 6

同样,在安装Mavericks之后bundle update,在pg gem上抛出一个错误,该错误仅用于生产而不是本地.

我使用Brew来管理我的包,并且已经安装了postgresql,但我仍然收到'no pg_config'错误.

然后修复就是brew uninstall postgresql这样brew install postgresql.之后我立即成功运行了bundle update.


Mat*_*nen 5

我相信“正确”的答案将是首先通过将以下内容添加到Postgres.app来正确配置PATH ~/.profile.zshrc~/.zprofile使用ZSH):

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Run Code Online (Sandbox Code Playgroud)

然后在终端中打开一个新的选项卡或窗口,并使用以下命令安装pggem:

ARCHFLAGS="-arch x86_64" gem install pg
Run Code Online (Sandbox Code Playgroud)

记录在这里:


jbh*_*ren 5

在OSX中安装了Postgres/Applications,我只需运行以下命令(根据您的版本更改0.209.4)

gem install pg -v '0.20' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

你应该有 :

使用以下命令构建本机扩展:' - with-pg-config =/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config'这可能需要一段时间......已成功安装pg-0.20.