2015-08-15 41 views
0

這是我第一次嘗試使用紅寶石堆棧。我堅持,錯誤如下:使用Sinatra獲得Rack GemNotFound

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

我已經成功地安裝了以下組件:

  • 的Ubuntu 14.04.3 LTS
  • RVM 11年1月26日
  • 紅寶石2.1.6p336
  • nginx的1.8

* LOCAL GEMS *

  • 的BigDecimal(1.2.4)
  • 捆綁(1.10.6)
  • 打捆 - 卸載(1.0.2)
  • 可執行形鉤(1.3.2)
  • 偕 - 包裝(1.2.7)
  • IO-控制檯(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打捆(1.4.4)
  • RVM(1.11.3.9)
  • 屈(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,我得到了上述錯誤。

在此先感謝!

回答

0

問題是在這裏:

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

你必須在機架版本衝突。你需要1.6.4和1.4.x
機架1.6.4是如何在gemfile.lock中結束的?

+0

我嘗試了一切,甚至在我的Gemfile中添加機架。我猜我現在可以刪除它,因爲它是Sinatra的依賴項。 – user1949419

相關問題