2015-05-01 137 views
0

我正在一個簡單的sinatra應用程序,我想用omniauth-steam寶石。Rubygems安裝老版本的寶石

我在我的Gemfile如下:

source "https://rubygems.org" 

gem "sinatra" 
gem "tilt" 
gem "shotgun" 

gem "omniauth-steam" 

做時將其捆綁安裝的寶石如預期。 omniauth-steam的依賴關係之一是omniauth-openid

問題來到這裏,當omniauth-steam安裝,它抓住了錯誤的(我猜是因爲它有寶石在他們的服務器上的舊版本)的omniauth-openid版本,因爲在github上的omniauth-openid當前分支(https://github.com/intridea/omniauth-openid)沒有按」沒有文件steam.rblib/omniauth/strategies/之內,但是我從rubygems得到的文件確實有。

在github中有一個封閉的問題解決了這個問題(https://github.com/reu/omniauth-steam/pull/14)。但我在做捆綁安裝時,得到了相同的omniauth-openid寶石(含steam.rb)

我試着做到以下幾點:

gem "omniauth-openid", github: "intridea/omniauth-openid" 
gem "omniauth-steam" 

它確實安裝omniauth-的OpenID不steam.rb,但這樣做的時候:

require "omniauth/strategies/steam" 

它不定位已經使用github上

安裝了寶石,我怎樣才能使omniauth-openid的寶石,我給G下載ithub,omniauth-steam可見,所以這個寶石可以找到?還是應該通過另一種方法解決這個問題?現在

gem 'omniauth-openid', :git => 'https://github.com/intridea/omniauth-openid.git' 

當您運行bundle的omniauth-openid的寶石會從指定的下載:

在此先感謝

+0

看這裏http://bundler.io/v1.3/gemfile.html – inye

+0

@inye我真的應用程序回顧你的鏈接。它實際上幫助我瞭解如何使github下載的寶石可見 – JavierQQ23

+0

太棒了! @ JavierQQ23。請將您的答案標記爲正確。 – inye

回答

0

在你Gemfile,你可以像這樣指定的寶石的來源git存儲庫。

+0

謝謝,我真的這樣做了,它下載了寶石。我的問題是「omniauth-steam」沒有找到這個寶石,並且使用了它自己的Gemspec中的寶石。 – JavierQQ23

0

據包文檔(http://bundler.io/v1.9/bundler_setup.html

Now that your code is available to Ruby, you can require the gems 
that you need. For instance, you can require 'sinatra'. If you have a 
lot of dependencies, you might want to say "require all of the gems in 
my Gemfile". To do this, put the following code immediately following 
require 'bundler/setup': 

    Bundler.require(:default) 

所以我的Gemfile年初弄成這個樣子

require "rubygems" 
require "bundler" 

Bundler.require 

現在omniauth-steam發現使用github上,而不是一個是omniauth-openid寶石下載在omniauth-steam指定gemspec