簡體   English   中英

使用Sinatra獲取機架GemNotFound

[英]Getting a Rack GemNotFound with Sinatra

這是我第一次嘗試使用紅寶石堆棧。 我陷入以下錯誤:

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

*當地的寶石*

  • 大十進制(1.2.4)
  • 捆綁器(1.10.6)
  • 捆綁器卸載(1.0.2)
  • 可執行文件掛鈎(1.3.2)
  • 寶石包裝(1.2.7)
  • io控制台(0.4.3)
  • json(1.8.1)
  • 最小測試(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)
  • 辛納特拉(1.4.6)
  • 測試單元(2.1.6.0)
  • 傾斜(2.0.1)

*寶石文件*

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
機架1.6.4如何最終出現在gemfile.lock中?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM