2016-05-01 12 views
2

最近、私はHeroku上に自分のレールアプリを配備しようとしていました。過去には、私はHerokuにアプリを問題なく配備しましたが、HerokuはもはやRuby 2.0.0をサポートしていません。彼らはGemfileruby "2.2.4"を追加することを提案しています。Heroku、不足しているバンドラでバンドラが失敗する

source 'https://rubygems.org' 
ruby "2.2.4" 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2.0' 
# Use pg as the database for Active Record 
gem 'pg' 
# Use SCSS for stylesheets 
gem 'sass-rails', '~> 5.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.1.0' 
# See https://github.com/sstephenson/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 
... 

だから、私は何の問題もなく自分のコンピュータ上でバージョン1.7.8とbundle installを実行している次のように私のGemfileの始まりです。私は生産モードで私のアプリを実行することもできます。私はHerokuの上のアプリを展開しようとすると、しかし、私はこれを取得:

-----> Ruby app detected 
-----> Compiling Ruby/Rails 
-----> Using Ruby version: ruby-2.2.4 
-----> Installing dependencies using bundler 1.11.2 
     Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment 
     Fetching gem metadata from https://rubygems.org/........... 
     Fetching version metadata from https://rubygems.org/... 
     Fetching dependency metadata from https://rubygems.org/.. 
     Using rake 10.4.2 
     Installing i18n 0.7.0 
     Installing minitest 5.4.3 
     Installing json 1.8.3 with native extensions 
     Installing thread_safe 0.3.4 
     Installing builder 3.2.2 
     Installing erubis 2.7.0 
     Your Gemfile.lock is corrupt. The following gem is missing from the DEPENDENCIES 
     section: 'mini_portile2' 
     Bundler Output: Fetching gem metadata from https://rubygems.org/........... 
     Fetching version metadata from https://rubygems.org/... 
     Fetching dependency metadata from https://rubygems.org/.. 
     Using rake 10.4.2 
     Installing i18n 0.7.0 
     Installing minitest 5.4.3 
     Installing json 1.8.3 with native extensions 
     Installing thread_safe 0.3.4 
     Installing builder 3.2.2 
     Installing erubis 2.7.0 
     Your Gemfile.lock is corrupt. The following gem is missing from the DEPENDENCIES 
     section: 'mini_portile2' 
! 
!  Failed to install gems via Bundler. 
! 
!  Push rejected, failed to compile Ruby app 

すべてのヘルプは大歓迎です。

+0

私はHeroku Gitを使用していません - 私はDropBoxを経由しています –

+0

コマンドラインで 'heroku config:set BUNDLE_WITHOUT =" development:test "'を実行するべきですか? –

答えて

2

Gemfile.lockを削除し、bundle installを再度ローカルに実行し、新しいGemfile.lockをgitリポジトリにコミットしてから、もう一度git push heroku masterを試してみることをお勧めします。

+1

@orangeplusと同じです。 gemfile.lockを削除しようとする必要があります。エラーメッセージは、それが壊れていると言います。元々はRuby 2.0.xを使用していたときに、より新しいバージョンを指定していたからです。 Gemfile.lockをその仕様で再生成する必要があります。確かではありませんが、実現可能なようです。 –

+0

ありがとうございます。これは私のために働いた。 –

+0

@orangeplus大歓迎です、私は助けてくれてうれしいです。ヘロクへの押しかけは時々雌犬になることがあります。 :) –

0

私は同じ問題を抱えていたし、私は私が私のシステムでのRuby 2.2.4を更新し、端末を再起動し、その後、次の手順に従ったんでした:

bundle install 
bundle update 
git push heroku 

(バンドルで宝石を更新することをお勧めしますバージョンが一致するように更新してください)

0

問題は、GemfileのRubyバージョン番号を変更しただけですが、有効なGemfile.lockを再作成しなかったことです。これにより、Ruby 2.2.4と互換性のないバージョンのGemを含むGemfile.lockが生成されます。

Gemfileで何かを変更する場合、同じRubyバージョンのGemfile.lockを更新または再作成してから、Herokuにプッシュする必要があります。

開発マシンで複数のバージョンのRubyを実行できるようにするには、Rubyバージョンマネージャ(rbenvまたはRVMなど)を使用することをお勧めします。 RubyバージョンをGemfile(Herokuの場合)と.ruby-version(あなたのローカル環境の場合)に変更して、アプリケーションのRubyバージョンを更新します。どちらのバージョンも一致する必要があります。

それが完了すると、(そこにメジャーアップデートがあったり、ちょうどあなたが最新バージョンを使用するようにしたい)Gemfile.lockまたはGemfile.lockを再作成するbundle updateを実行更新するbundle installを実行します。

関連する問題