安装 pg (0.17.1) 时出错,Bundler 无法继续
Posted
技术标签:
【中文标题】安装 pg (0.17.1) 时出错,Bundler 无法继续【英文标题】:An error occurred while installing pg (0.17.1), and Bundler cannot continue 【发布时间】:2014-01-12 07:03:41 【问题描述】:我刚刚安装了Rails 4.0.2
,在创建新应用程序时,在捆绑阶段我得到:
Installing pg (0.17.1)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
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.
我该如何解决这个问题?
【问题讨论】:
您可能想要添加一个 osx 标签。该解决方案似乎可能与您的操作系统特别相关。 您可能想访问 . ***.com/questions/3116015/… 。希望这些解决方案之一有所帮助 【参考方案1】:我刚刚设置了一个新的 Macbook Pro,它是用 Catalina 预构建的。
什么对我有用:
-
从这里安装 Postgres:https://postgresapp.com/
将
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
添加到您的.zshenv
,因为Z shell 现在是默认终端。
【讨论】:
【参考方案2】:如果您是通过 Homebrew 安装的; gem install pg -- --with-pg-config=/usr/local/bin/pg_config
。适用于 Ruby 2.4.6 和 pg 0.20.0。
【讨论】:
【参考方案3】:我在使用 Amazon 时遇到问题,无法使用 apt-get。 对于我的工作:
sudo yum install postgresql-devel
然后:
bundle install
再试一次:
rails serve
【讨论】:
【参考方案4】:以前使用旧版本的有效答案
我安装在 mac OSX Mavericks 下,安装了 www.postgresapp.com 的 postgres 应用程序(版本 9.2.2.0)。根本问题很简单,因为 postgres 是通过应用程序安装的,所以配置文件驻留在一个位置,在没有 postgressapp 的情况下安装它时,该位置不是默认位置。所以我们需要告诉 gem 在哪里可以找到这个文件:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
希望对你有帮助
【讨论】:
这是我的解决方案 (OSX) 如果这对任何人都不起作用,9.3 的配置文件已移动 - 请参阅接受的答案。【参考方案5】:对我有用
rvm list gemsets
rvm use ruby-2.4.1
bundle
]2
【讨论】:
你没有在这里安装pg
gem【参考方案6】:
CentOS 用户:
sudo yum install postgresql-devel
和
gem install pg
【讨论】:
【参考方案7】:我在运行 Mavericks 的 Mac 上。我的解决方案是安装Postgres。
然后在终端中使用带有配置的自制软件安装:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
注意:此答案已被编辑为使用 Postgres 应用的发布版本中当前包含的 latest
符号链接。
建议的以前版本:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
【讨论】:
是的,我的也在不同的位置。感谢您的回答。 正确的 Bob,对我有用的 postgresapp 版本是 9.2.2.0 版,所以他们必须在 9.3 版本中更改了这个位置。 现在,截至 2015 年 1 月 22 日,我们正在关注 9.4 版本,很高兴看到他们一直在更新 -- "gem install pg -- --with-pg -config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config" 我很着急,错过了这个答案中“使用自制软件安装”的部分。在我做了brew update; brew install postgres
之后,这个答案对我有用
在您的解决方案中,请添加版本,其他最新的 PG gem 将安装:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
【参考方案8】:
我需要使用 sudo
sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
【讨论】:
【参考方案9】:如果您在开发中使用 Postgres 以外的其他工具,并且仅在生产中使用 Postgres,您可以像这样将 pg gem 添加到您的 gemfile...
group :production do
gem 'pg', '0.17.1'
end
然后使用bundle install --without production
【讨论】:
【参考方案10】:我必须结合一切并使用
sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
【讨论】:
【参考方案11】:我设法克服这个错误的方法是:
cd 到 app 文件夹,然后在本地设置 ruby 版本。我正在使用 ruby 2.1.2。不只是运行 bundle install,而是在 vendor/bundle 中安装 gemsrbenv 本地 2.1.2
bundle install --path vendor/bundle
这是为我做的。
【讨论】:
【参考方案12】:安装 Postgres 后,我必须运行以下命令
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
此捆绑包安装后效果很好!
希望对你有帮助
【讨论】:
【参考方案13】:应用根目录:
-
酿造更新
brew 安装 postgres
gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.4/bin/pg_config
捆绑安装
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
launchctl 加载 ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
createuser -s -r postgres
rake db:create:all
rake db:迁移
导轨 s
注意:如果需要,请替换步骤 3 中的版本号。
【讨论】:
【参考方案14】:如果 gem install pg 失败,请尝试以下命令:
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
...来自PostgreSQL.app Documentation
【讨论】:
由于官方app最近更名为“Postgres93.app”,所以命令应该是:env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
对我来说它与:env ARCHFLAGS="-arch x86_64" gem install pg
【参考方案15】:
这里报告了某种错误Installing PG gem on OS X - failure to build native extension
要在 Ubuntu 上安装依赖项,试试这个:
sudo apt-get install libpq-dev
还有这个
gem install pg
【讨论】:
我在mac上,我该怎么办? 遵循 railstutorial.org 上的教程。这就是你需要为 Mint 做的事情。谢谢。 railstutorial.org -- 付费教程;还有其他想法吗? @Deekor 如果您使用 Homebrew,则可以运行brew install postgresql
,然后应该正确安装 pg
gem。见these docs。【参考方案16】:
您似乎没有安装 PostgreSQL。 pg
gem 需要一些来自 PostgreSQL 的头文件来编译原生扩展。
【讨论】:
你的 Ruby/Bundler 设置怎么样?您使用的是 Mac OS X 还是 Linux?如果您使用的是 Mac OS X,您是通过homebrew
或 PostgreSQL.app 安装 PostgreSQL?
我在 Mac 上。我是通过应用安装的
我安装了 0.17.0。将它与 rails 4 一起使用有什么危害吗?
然后尝试运行bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
并再次运行bundle
。如果您将应用安装到~/Application
而不是/Application
,请调整配置路径以上是关于安装 pg (0.17.1) 时出错,Bundler 无法继续的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 4 为奏鸣曲管理包安装 sensio/generator-bundle 时出错
运行 gem install pg -v '0.15.1' 时出错
运行 bundle install 时如何传递 gem 安装的参数?
在 Heroku 上执行 rake db:migrate 时出错
Github 操作工作流 PG::ConnectionBad:无法连接到服务器:运行 bundle exec rake 时没有这样的文件或目录