没有安装thin gem时启动thin server无法正常运行。

9

我正在使用 Ruby 1.9.3 和 Rails 3.2.2。每次我使用带有 Private_pub gem 的 Thin 服务器时,它都无法正常工作。我运行了 rackup private_pub.ru -s thin -E production 命令,但是出现了以下错误:

/home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler/thin.rb:1:in `require': cannot load such file -- thin (LoadError)
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler/thin.rb:1:in `<top (required)>'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `const_get'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `block in get'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `each'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `inject'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `get'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:269:in `server'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:265:in `start'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/bin/rackup:19:in `load'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/bin/rackup:19:in `<main>'
rzaartz@ubuntu:~/paper$ rvm 1.9.3
rzaartz@ubuntu:~/paper$ rackup private_pub.ru -s thin -E production
/home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler/thin.rb:1:in `require': cannot load such file -- thin (LoadError)
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler/thin.rb:1:in `<top (required)>'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `const_get'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `block in get'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `each'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `inject'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler.rb:20:in `get'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:269:in `server'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:265:in `start'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/bin/rackup:19:in `load'
    from /home/rzaartz/.rvm/gems/ruby-1.9.3-p125/bin/rackup:19:in `<main>'

如果我在我的gem文件中包含thin gem,它就可以正常工作。谢谢您的帮助。
3个回答

21

没有Linux,就不能启动Linux系统。

没有Rack,就不能启动rackup服务器。

没有thin gem,就不能启动thin服务器。


1
我查看了Ryan Bates的教程,他的源代码中没有包含Thin gem。 - Uchenna
但他在这个宝石仓库上的安装很少。 - shingara
rackup -rubygems private_pub.ru -s thin -E production,你需要停止使用Bundler。 - shingara
除非我在gem文件中添加thin gem,否则仍然没有运气。 - Uchenna
1
@UchennaOkafor 那就把它添加到Gemfile中吧!为什么要把简单明了的事情复杂化呢? - yagooar
这与Thin升级到1.4.1有关(https://github.com/macournoyer/thin/issues/115)。这可能是为什么它适用于旧的Railscast但现在不适用的原因。 - ronan_mac

14
/home/dimas/RUBY/application/faye-tutorial/faye.ru:3:in `require': cannot load such file -- thin (LoadError)
    from /home/dimas/RUBY/application/faye-tutorial/faye.ru:3:in `block in <main>'

我遇到了同样的问题,通过以下方法解决:

将这个 gem 添加到 Gemfile 中。

gem 'faye'
gem 'thin'

之后执行bundle install命令。


2
许多人可能正在使用Rails 4 / Ruby 2,并遵循Ryan Bate的railscast#260有关faye的说明。$ rackup faye.ru -s thin -E production他的gem文件中没有fayethin。尽管在fayethin上执行了gem install,但至少对于Rails 4,需要将fayethin放入gem文件中并执行bundle install才能启动服务器。 - Eric Wanchic

1

如果您想使用 gem,它必须在您的 Gemfile 中。您可以按照以下步骤解决问题:

  • 将以下行添加到您的 Gemfile 中:gem 'thin'
  • 更新您当前应用程序的环境:bundle install
  • 启动 Web 服务器:bundle exec thin start

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接