ochalog

RubyとMediaWikiとIRCが好き。

Heroku: tilt 1.3.5 の bundle で失敗する場合

Rails + Heroku の勉強をしているのだけれど、最初の git push heroku master でいきなりつまずいたのでメモ。こんなエラーが出る。

-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.3.0.pre.5
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
       Fetching gem metadata from https://rubygems.org/.........
       Fetching gem metadata from https://rubygems.org/..
       Could not find tilt-1.3.5 in any of the sources
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

Stack Overflow でいくつかこの問題に関する話題が見つかったので見てみると、tilt 1.3.4 を使えば良いみたい。Gemfile に

# for heroku push failure with tilt 1.3.5
gem 'tilt', '1.3.4'

とでも書いておけばよい…だけではすまなかった。今度は bundle を行ったときにエラーが出る。

Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
You have requested:
  tilt = 1.3.4
 
The bundle currently has tilt locked at 1.3.5.
Try running `bundle update tilt`

「locked」とあるので Gemfile.lock が悪さをしているようだ。Gemfile.lock を消してからもう一度 bundle すると、今度は成功した。その後 git push heroku master を行うと、bundle で止まることなく push することができた。