LoginSignup
0
1

More than 5 years have passed since last update.

Resque::Server を使おうとしたら LoadError: cannot load such file -- rack/showexceptions とか言われる件

Posted at

TL;DR

Resque 自体の問題ではなく、依存している Sinatra の問題だった。
Gemfile に以下を加えると良い。
ただし、正式リリースではないので注意。

gem 'sinatra', '~> 2.0.0.rc2'

背景

Rails (5.0.2) で Resque::Server を使おうと Gemfile に以下を加えた。

gem 'resque', require: 'resque/server'

その状態で ./bin/setup をすると以下のようなエラーが。

$ ./bin/setup
== Installing dependencies ==
The Gemfile's dependencies are satisfied

== Preparing database ==
rails aborted!
LoadError: cannot load such file -- rack/showexceptions
/Users/yuya/src/github.com/yuya-takeyama/resque-test/config/application.rb:7:in `<top (required)>'
/Users/yuya/src/github.com/yuya-takeyama/resque-test/Rakefile:4:in `require_relative'
/Users/yuya/src/github.com/yuya-takeyama/resque-test/Rakefile:4:in `<top (required)>'
/Users/yuya/src/github.com/yuya-takeyama/resque-test/bin/rails:9:in `require'
/Users/yuya/src/github.com/yuya-takeyama/resque-test/bin/rails:9:in `<top (required)>'
/Users/yuya/src/github.com/yuya-takeyama/resque-test/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
(See full trace by running task with --trace)

== Command ["bin/rails db:setup"] failed ==

rack/showexceptions を読み込もうとしてエラーになるらしい。

どこで読み込もうとしているのか調べたら Resque::Server が依存する Sinatra だった。
Gemfile.lock を確認するとバージョンは 1.0 だった。

さらに調べてみると以下の Sinatra の issue にたどり着く。

Incorrect rack requirement for showexceptions file

どうも Rack 2.0 以降は rack/showexceptionsrack/show_exceptions にリネームされているらしい。

Sinatra 2.0 以降はこの変更に追従しているものの、未だ正式リリースはされていないため、特に指定がなければ 1.0 がインストールされてしまい問題になる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1