Heroku 正在尝试安装 sqlite3 gem,即使它不在 Gemfile 中
我第一次尝试在 Heroku 上部署 Rails 3.1 应用程序。我将其设置为 Cedar 堆栈,删除了 sqlite3 gem,但是当我将代码推送到 Heroku 时,出现此错误:
----->使用 Bundler 版本 1.1.rc 安装依赖项 运行:bundle install --withoutdevelopment:test --pathvendor/bundle--deployment 从 http://rubygems.org/ 获取 gem 元数据....... (...)
安装导轨 (3.1.0) 安装带有本机扩展的 sqlite3 (1.3.4) 不幸的是,发生了致命错误。请将此错误报告给 Bundler 问题跟踪器位于 https://github.com/carlhuda/bundler/issues 以便我们修复它。 谢谢! /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `build_extensions 中的块中的救援':错误:无法构建 gem 本机 扩大。 (宝石::安装程序::扩展构建错误) /usr/local/bin/ruby extconf.rb 检查 sqlite3.h...否
我不知道为什么捆绑安装试图安装 sqlite3。看看我的 Gemfile 和 Gemfile.lock:
Gemfile
source 'http://rubygems.org'
gem 'rails', '3.1.0'
gem 'json'
gem 'pg'
gem 'thin'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
# gem 'sass-rails', " ~> 3.1.0"
# gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
Gemfile.lock
GEM remote: http://rubygems.org/ specs:
actionmailer (3.1.0)
actionpack (= 3.1.0)
mail (~> 2.3.0)
actionpack (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
builder (~> 3.0.0)
erubis (~> 2.7.0)
i18n (~> 0.6)
rack (~> 1.3.2)
rack-cache (~> 1.0.3)
rack-mount (~> 0.8.2)
rack-test (~> 0.6.1)
sprockets (~> 2.0.0)
activemodel (3.1.0)
activesupport (= 3.1.0)
bcrypt-ruby (~> 3.0.0)
builder (~> 3.0.0)
i18n (~> 0.6)
activerecord (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
arel (~> 2.2.1)
tzinfo (~> 0.3.29)
activeresource (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
activesupport (3.1.0)
multi_json (~> 1.0)
arel (2.2.1)
bcrypt-ruby (3.0.1)
builder (3.0.0)
daemons (1.1.4)
erubis (2.7.0)
eventmachine (0.12.10)
execjs (1.2.9)
multi_json (~> 1.0)
hike (1.2.1)
i18n (0.6.0)
jquery-rails (1.0.14)
railties (~> 3.0)
thor (~> 0.14)
json (1.6.1)
mail (2.3.0)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.16)
multi_json (1.0.3)
pg (0.11.0)
polyglot (0.3.2)
rack (1.3.3)
rack-cache (1.0.3)
rack (>= 0.4)
rack-mount (0.8.3)
rack (>= 1.0.0)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
rack (>= 1.0)
rails (3.1.0)
actionmailer (= 3.1.0)
actionpack (= 3.1.0)
activerecord (= 3.1.0)
activeresource (= 3.1.0)
activesupport (= 3.1.0)
bundler (~> 1.0)
railties (= 3.1.0)
railties (3.1.0)
actionpack (= 3.1.0)
activesupport (= 3.1.0)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2)
rdoc (3.9.4)
sprockets (2.0.0)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
thin (1.2.11)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.29)
uglifier (1.0.3)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
PLATFORMS ruby
DEPENDENCIES jquery-rails json pg rails (= 3.1.0) thin uglifier
我该如何修复它?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当我遇到问题时,结果发现我忘记在
捆绑安装
后提交更改。哎哟!git status
应指示 gem 文件的未暂存更改。When I ran into the problem, turns out I'd forgotten to commit my changes after
bundle install
. Doh!git status
should indicate unstaged changes for the gem files.我有同样的问题,zoltarSpeaks 的解决方案为我解决了这个问题。在阅读这篇文章后,我安装了 Taps gem,该文章表明有必要从本地 sqlite3 推送到生产 postgresql: http://batsov.com/articles/2011/10/30/deploying-rails31-apps-on-celadon-cedar/。结果我根本不需要水龙头宝石,但这显然是问题所在。删除了参考,捆绑更新,所有系统都正常。
I has the same problem and zoltarSpeaks' solution fixed it for me. I had the taps gem installed after reading this article that indicated it would be necessary for pushing from a local sqlite3 to production postgresql: http://batsov.com/articles/2011/10/30/deploying-rails31-apps-on-celadon-cedar/. Turned out I didn't need the taps gem after all, but it was clearly the problem. Removed the reference, bundle update, all systems go.
尝试删除 Gemfile.lock 并运行 Bundle Install、提交和推送
try deleting Gemfile.lock and run Bundle Install, commit and push
无需为 Heroku 卸载 sqlite3 gem 的简单解决方案:
添加到 Gemfile:
检查您是否有:
在 Gemfile 中的代码末尾
,保存 Gemfile 并运行捆绑安装,
提交
然后
就这样。您只会收到一些警告,只需修复即可。
Simple solution without uninstalling sqlite3 gem for Heroku:
Add to Gemfile:
Check, that you have:
at the end of code in Gemfile
than Save Gemfile and run bundle install
than commit
than
That is all. You will get only a few warnings which is simply to fix.