Ruby on rails Ubuntu 14.04-安装pg(0.18.2)时出错,Bundler无法继续
这个问题让我无法继续,我不知道是否有可能在Heroku上部署Rails应用程序 当我尝试在gem文件中安装Ruby on rails Ubuntu 14.04-安装pg(0.18.2)时出错,Bundler无法继续,ruby-on-rails,postgresql,ubuntu,heroku,sqlite,Ruby On Rails,Postgresql,Ubuntu,Heroku,Sqlite,这个问题让我无法继续,我不知道是否有可能在Heroku上部署Rails应用程序 当我尝试在gem文件中安装gem'pg'时,会出现以下错误 An error occurred while installing pg (0.18.2), and Bundler cannot continue. 在绑定之前,确保gem安装pg-v“0.18.2”成功。 然而,当我尝试sudogem安装pg时,它说成功安装了pg-0.18.2 已安装1个gem 但是,当我尝试在本地运行应用程序或在Heroku上部署
gem'pg'
时,会出现以下错误
An error occurred while installing pg (0.18.2), and Bundler cannot continue.
在绑定之前,确保gem安装pg-v“0.18.2”成功。
然而,当我尝试sudogem安装pg
时,它说成功安装了pg-0.18.2
已安装1个gem
但是,当我尝试在本地运行应用程序或在Heroku上部署时,它会再次给我同样的错误。通过在开发模式下使用
sqlite3
,一切都很好,但在Heroku上也会出现同样的问题,因为Heroku不支持sqlite3。您是否在本地安装了PostgreSQL?如果不是,这可能就是原因(拥有gem'pg'
不足以在本地安装它)。您必须运行sudo apt get install postgresql postgresql contrib
才能安装
您不需要在本地安装它来推送到Heroku,只要您有gem'pg'
。您可以通过在GEM文件中专门为生产设置不同的组来实现这一点。比如:
group :development, :test do
gem 'sqlite3', '1.3.9'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor', '0.0.2'
end
首先,您必须在生产中包含
pg
gem,在gem文件的开发和测试环境中包含sqlite
group :development, :test do
gem 'sqlite3'
end
gem 'pg', group: :production
然后将gem打包,不包括生产环境
bundle install --without production
然后,您可以提交并推送heroku。如果我误解了您的问题,请尝试以下操作:
env ARCHFLAGS=“-arch x86_64”gem安装pg
谢谢这项工作,我应该在database.yml中为heroku上的部署做些什么,还有其他步骤吗?您的生产、开发中有pg gem吗,或者两者兼而有之?我已经在Gemfile中添加了您建议的行,当我捆绑安装时,
正如@Ojash建议的那样,一切都很顺利。否则bundle安装不允许我安装pg。那么你应该很好。当你推到Heroku时,你有没有遇到任何错误?感谢这一点,我应该在database.yml中做什么来部署Heroku,还有其他步骤吗?没什么,你可以只为开发和测试环境设置database.yml,生产将由Heroku自己负责,你不需要在文件本身中提及任何内容。