【发布时间】:2013-05-14 20:49:22
【问题描述】:
我的设置和错误
当我使用 rackup 和 puma 启动我的 Sinatra 应用程序时出现错误。我的config.ru 文件如下所示:
#\ -s puma
require './controller/main.rb'
run Sinatra::Application
所以当我现在使用 rackup 时,我得到了这个错误:
/home/username/.rvm/gems/ruby-1.9.3-p392/gems/rack-1.5.2/lib/rack/handler.rb:76:in `require': 无法加载此类文件 -- rack/handler/puma (LoadError)
我使用 ruby 1.9.3p392(2013-02-22 修订版 39386)[i686-linux]
到目前为止我已经尝试过什么
我的第一个想法是我忘记安装 puma,或者 puma 以某种方式损坏。所以我尝试了:
puma -v
puma version 2.0.1
我直接用 ruby 启动它:
ruby controller/main.rb
Puma 2.0.1 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:4567
我找到了这个 puma issue 但我没有找到真正的解决方案。
最后是我的问题
为什么会发生这种情况?
我该如何解决这个问题?
【问题讨论】:
-
你在使用 Bundler 吗?
-
是 Bundler 版本 1.3.4
-
我首先要尝试两件事。 1) 我会对 gem 进行沙箱处理,这样它们就不会与 Rubygems 安装的那些混淆。使用
rm -rf .bundle Gemfile.lock bin vendor删除当前捆绑程序的内容并运行bundle install --binstubs --path vendor。现在所有 exe 都在本地 bin 目录中,所有 gem 都在本地供应商目录中。 2) 使用bundle exec运行,但由于使用了binstubs命令,您可以改为运行bin/rackup config.ru。看看这是否能改善情况/带来不同的错误。 -
好的,你能解释一下为什么吗?您可以将其添加为答案,以便我接受。有趣的是现在我也可以使用全局机架了