使用Sinatra获得Rack GemNotFound

这是我第一次尝试使用红宝石堆栈。 我遇到以下错误:

Could not find rack-1.6.4 in any of the sources (Bundler::GemNotFound)

我已经成功安装了以下组件:

  • Ubuntu 14.04.3 LTS
  • rvm 1.26.11
  • 红宝石2.1.6p336
  • nginx 1.8
  • *本地GEMS *

  • bigdecimal(1.2.4)
  • 捆绑商(1.10.6)
  • bundler-unload(1.0.2)
  • 可执行的钩子(1.3.2)
  • 宝石包装(1.2.7)
  • io-console(0.4.3)
  • json(1.8.1)
  • minitest(4.7.5)
  • 精神(2.0.5)
  • 机架(1.6.4)
  • 机架保护(1.5.3)
  • 耙(10.1.0)
  • rdoc(4.1.0)
  • rubygems-bundler(1.4.4)
  • rvm(1.11.3.9)
  • sinatra(1.4.6)
  • 测试单元(2.1.6.0)
  • 倾斜(2.0.1)
  • * Gemfile *

    gem 'sinatra', '1.4.6'
    

    * Gemfile.lock *

    GEM
        remote: https://rubygems.org/
        specs:
            rack (1.6.4)
            rack-protection (1.5.3)
                rack
            sinatra (1.4.6)
                rack (~> 1.4)
                rack-protection (~> 1.4)
                tilt (>= 1.3, < 3)
            tilt (2.0.1)
    
    PLATFORMS
        ruby
    
    DEPENDENCIES
        sinatra (= 1.4.6)
    
    BUNDLED WITH
        1.10.6
    

    * config.ru *

    require './app.rb'
    run Sinatra::Application
    

    * app.rb *

    require 'bundler/setup'
    require 'sinatra'
    
    get '/' do
        'hello world'
    end
    

    我为应用程序使用默认的Nginx文件夹。 我能够在config.ru中执行以下测试:

    app = proc do |env|
        [200, { "Content-Type" => "text/html" }, ["hello world"]]
    end
    

    但只要我尝试切换到Sinatra,我就会得到上面的错误。

    提前致谢!


    好的,我发现了这个问题。

    我遵循这里的安装说明:https://www.phusionpassenger.com/library/install/nginx/install/oss/trusty/

    但是因为我使用的是rvm,我不得不改变passenger_ruby指令来指向rvm包装器:/usr/local/rvm/wrappers/ruby-2.1.6/ruby


    问题在这里:

    rack (1.6.4)
    ...
            sinatra (1.4.6)
                rack (~> 1.4)
    

    机架版本有冲突。 你需要1.6.4和1.4.x
    rack 1.6.4如何在gemfile.lock中结束?

    链接地址: http://www.djcxy.com/p/32537.html

    上一篇: Getting a Rack GemNotFound with Sinatra

    下一篇: Modular Sinatra app returns 404's under Passenger