[Heroku] [Rails]!无法通过Bundler安装宝石

时间:2018-07-30 17:02:57

标签: ruby-on-rails ruby heroku bundler

首先,这是我的第一个问题。 我使用Strack Overflow已有好几年了,我想对每个花费时间询问和回答问题的人表示感谢。 你们使我的事业成为可能

我正在尝试在Heroku中部署Rails应用,但在推送分支后却收到此错误: 无法通过Bundler安装gem。 我的gems文件非常简单:

宝石文件:

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.3.1'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.0'
gem 'pg', '~> 0.21'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bootsnap', '>= 1.1.0', require: false
gem 'responders'
gem 'dotenv-rails'
gem 'active_model_serializers', '~>0.9.4'
gem 'httparty'

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
#gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Gemfile.lock:

GEM
  remote: https://rubygems.org/
  specs:
    actioncable (5.2.0)
      actionpack (= 5.2.0)
      nio4r (~> 2.0)
      websocket-driver (>= 0.6.1)
    actionmailer (5.2.0)
      actionpack (= 5.2.0)
      actionview (= 5.2.0)
      activejob (= 5.2.0)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 2.0)
    actionpack (5.2.0)
      actionview (= 5.2.0)
      activesupport (= 5.2.0)
      rack (~> 2.0)
      rack-test (>= 0.6.3)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.0.2)
    actionview (5.2.0)
      activesupport (= 5.2.0)
      builder (~> 3.1)
      erubi (~> 1.4)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.0.3)
    active_model_serializers (0.9.7)
      activemodel (>= 3.2)
      concurrent-ruby (~> 1.0)
    activejob (5.2.0)
      activesupport (= 5.2.0)
      globalid (>= 0.3.6)
    activemodel (5.2.0)
      activesupport (= 5.2.0)
    activerecord (5.2.0)
      activemodel (= 5.2.0)
      activesupport (= 5.2.0)
      arel (>= 9.0)
    activestorage (5.2.0)
      actionpack (= 5.2.0)
      activerecord (= 5.2.0)
      marcel (~> 0.3.1)
    activesupport (5.2.0)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 0.7, < 2)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
    arel (9.0.0)
    bindex (0.5.0)
    bootsnap (1.3.1)
      msgpack (~> 1.0)
    builder (3.2.3)
    byebug (10.0.2)
    concurrent-ruby (1.0.5)
    crass (1.0.4)
    dotenv (2.5.0)
    dotenv-rails (2.5.0)
      dotenv (= 2.5.0)
      railties (>= 3.2, < 6.0)
    erubi (1.7.1)
    execjs (2.7.0)
    ffi (1.9.25)
    globalid (0.4.1)
      activesupport (>= 4.2.0)
    httparty (0.16.2)
      multi_xml (>= 0.5.2)
    i18n (1.0.1)
      concurrent-ruby (~> 1.0)
    jbuilder (2.7.0)
      activesupport (>= 4.2.0)
      multi_json (>= 1.2)
    listen (3.1.5)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
      ruby_dep (~> 1.2)
    loofah (2.2.2)
      crass (~> 1.0.2)
      nokogiri (>= 1.5.9)
    mail (2.7.0)
      mini_mime (>= 0.1.1)
    marcel (0.3.2)
      mimemagic (~> 0.3.2)
    method_source (0.9.0)
    mimemagic (0.3.2)
    mini_mime (1.0.0)
    mini_portile2 (2.3.0)
    minitest (5.11.3)
    msgpack (1.2.4)
    multi_json (1.13.1)
    multi_xml (0.6.0)
    nio4r (2.3.1)
    nokogiri (1.8.4)
      mini_portile2 (~> 2.3.0)
    pg (0.21.0)
    rack (2.0.5)
    rack-test (1.1.0)
      rack (>= 1.0, < 3)
    rails (5.2.0)
      actioncable (= 5.2.0)
      actionmailer (= 5.2.0)
      actionpack (= 5.2.0)
      actionview (= 5.2.0)
      activejob (= 5.2.0)
      activemodel (= 5.2.0)
      activerecord (= 5.2.0)
      activestorage (= 5.2.0)
      activesupport (= 5.2.0)
      bundler (>= 1.3.0)
      railties (= 5.2.0)
      sprockets-rails (>= 2.0.0)
    rails-dom-testing (2.0.3)
      activesupport (>= 4.2.0)
      nokogiri (>= 1.6)
    rails-html-sanitizer (1.0.4)
      loofah (~> 2.2, >= 2.2.2)
    railties (5.2.0)
      actionpack (= 5.2.0)
      activesupport (= 5.2.0)
      method_source
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (12.3.1)
    rb-fsevent (0.10.3)
    rb-inotify (0.9.10)
      ffi (>= 0.5.0, < 2)
    responders (2.4.0)
      actionpack (>= 4.2.0, < 5.3)
      railties (>= 4.2.0, < 5.3)
    ruby_dep (1.5.0)
    sass (3.5.7)
      sass-listen (~> 4.0.0)
    sass-listen (4.0.0)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
    sass-rails (5.0.7)
      railties (>= 4.0.0, < 6)
      sass (~> 3.1)
      sprockets (>= 2.8, < 4.0)
      sprockets-rails (>= 2.0, < 4.0)
      tilt (>= 1.1, < 3)
    sprockets (3.7.2)
      concurrent-ruby (~> 1.0)
      rack (> 1, < 3)
    sprockets-rails (3.2.1)
      actionpack (>= 4.0)
      activesupport (>= 4.0)
      sprockets (>= 3.0.0)
    thor (0.20.0)
    thread_safe (0.3.6)
    tilt (2.0.8)
    turbolinks (5.1.1)
      turbolinks-source (~> 5.1)
    turbolinks-source (5.1.0)
    tzinfo (1.2.5)
      thread_safe (~> 0.1)
    uglifier (4.1.17)
      execjs (>= 0.3.0, < 3)
    web-console (3.6.2)
      actionview (>= 5.0)
      activemodel (>= 5.0)
      bindex (>= 0.4.0)
      railties (>= 5.0)
    websocket-driver (0.7.0)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.3)

PLATFORMS
  ruby

DEPENDENCIES
  active_model_serializers (~> 0.9.4)
  bootsnap (>= 1.1.0)
  byebug
  dotenv-rails
  httparty
  jbuilder (~> 2.5)
  listen (>= 3.0.5, < 3.2)
  pg (~> 0.21)
  rails (~> 5.2.0)
  responders
  sass-rails (~> 5.0)
  turbolinks (~> 5)
  uglifier (>= 1.3.0)
  web-console (>= 3.3.0)

RUBY VERSION
   ruby 2.3.1p112

BUNDLED WITH
   1.16.3

完成构建日志

 !     Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.

            Detected buildpacks: Ruby,Node.js

            See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order

-----> Ruby app detected

-----> Compiling Ruby/Rails

-----> Using Ruby version: ruby-2.3.1

-----> Installing dependencies using bundler 1.15.2

       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment

       You are trying to install in deployment mode after changing

       your Gemfile. Run `bundle install` elsewhere and add the

       updated Gemfile.lock to version control.



       The dependencies in your gemfile changed



       You have added to the Gemfile:

       * responders

       * dotenv-rails

       * active_model_serializers (~> 0.9.4)

       * httparty



       You have deleted from the Gemfile:

       * capybara (< 4.0, >= 2.15)

       * chromedriver-helper

       * coffee-rails (~> 4.2)

       * selenium-webdriver

       * spring

       * spring-watcher-listen (~> 2.0.0)

       Bundler Output: You are trying to install in deployment mode after changing

       your Gemfile. Run `bundle install` elsewhere and add the

       updated Gemfile.lock to version control.



       The dependencies in your gemfile changed



       You have added to the Gemfile:

       * responders

       * dotenv-rails

       * active_model_serializers (~> 0.9.4)

       * httparty



       You have deleted from the Gemfile:

       * capybara (< 4.0, >= 2.15)

       * chromedriver-helper

       * coffee-rails (~> 4.2)

       * selenium-webdriver

       * spring

       * spring-watcher-listen (~> 2.0.0)

 !

 !     Failed to install gems via Bundler.

 !

 !     Push rejected, failed to compile Ruby app.

 !     Push failed

我已经尝试重建我的Gemfile.lock。 我删除了它并运行捆绑更新 + 捆绑安装

这是我第一次来到Heroku,我担心也许我在推一些不兼容的宝石。

关于设置: ruby​​ 2.3.1和 rails 5.2.0

感谢您的帮助!

谢谢。

2 个答案:

答案 0 :(得分:0)

我发现将您正在运行的当前红宝石版本添加到gem文件中,然后运行

捆绑更新--ruby

做得很好。

heroku上的这篇文章详细介绍了 https://devcenter.heroku.com/articles/ruby-versions

答案 1 :(得分:-1)

以下是解决该问题的步骤。由于某些原因,您的Gemfile.lock文件未正确提交。

捆绑您的宝石并指定地添加文件,然后提交并推回heroku

bundle
git add -f Gemfile.lock
git commit -m 'added Gemfile.lock'
git push heroku master