Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ubuntu 14.04-安装pg(0.18.2)时出错,Bundler无法继续_Ruby On Rails_Postgresql_Ubuntu_Heroku_Sqlite - Fatal编程技术网

Ruby on rails Ubuntu 14.04-安装pg(0.18.2)时出错,Bundler无法继续

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上部署

这个问题让我无法继续,我不知道是否有可能在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上部署时,它会再次给我同样的错误。通过在开发模式下使用
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自己负责,你不需要在文件本身中提及任何内容。