Rubygems安装较旧版本的gem

Rubygems安装较旧版本的gem,ruby,rubygems,bundler,omniauth,Ruby,Rubygems,Bundler,Omniauth,我在一个简单的sinatra应用程序中工作,我想使用omniauth steamgem 我的GEM文件中包含以下内容: source "https://rubygems.org" gem "sinatra" gem "tilt" gem "shotgun" gem "omniauth-steam" gem "omniauth-openid", github: "intridea/omniauth-openid" gem "omniauth-steam" 当进行捆绑时,它会按预期安装gem

我在一个简单的sinatra应用程序中工作,我想使用
omniauth steam
gem

我的GEM文件中包含以下内容:

source "https://rubygems.org"

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

gem "omniauth-steam"
gem "omniauth-openid", github: "intridea/omniauth-openid"
gem "omniauth-steam"
当进行捆绑时,它会按预期安装gems。
omniauth-steam
的一个依赖项是
omniauth-openid

问题出现在这里,当安装了
omniauth-steam
时,它获取了一个错误的
omniauth-openid
版本(我猜是因为它的服务器中有一个旧版本的gem),因为github中的
omniauth-openid
的当前分支()在
lib/omniauth/strategies/
中没有文件
steam.rb
,但我从rubygems获得的文件确实有

github中有一个已解决的问题解决了这个问题()。但是我在进行bundle安装时得到了相同的
omniauth openid
gem(使用steam.rb)

我试着做到以下几点:

source "https://rubygems.org"

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

gem "omniauth-steam"
gem "omniauth-openid", github: "intridea/omniauth-openid"
gem "omniauth-steam"
它在不使用steam.rb的情况下安装omniauth openid,但在执行以下操作时:

require "omniauth/strategies/steam"
它找不到使用github安装的gem

如何使我从github下载的
omniauth openid
gem对
omniauth steam
可见,以便此gem可以找到它?或者我应该用另一种方法来解决这个问题


提前感谢

在您的
gem文件中
,您可以这样指定gem的来源:

gem 'omniauth-openid', :git => 'https://github.com/intridea/omniauth-openid.git'
现在,当您运行
bundle
时,将从指定的git存储库下载omniauth openid gem。

根据bundle文档()

所以我的文件的开头是这样的

require "rubygems"
require "bundler"

Bundler.require

现在,
omniauth-steam
找到了使用github下载的
omniauth-openid
gem,而不是
omniauth-steam
gempec

看这里@inye我真的很感谢你的链接。它实际上帮助我理解了如何让github下载的gems变得更棒@JavierQQ23。标记你的答案为正确的。谢谢,我确实这么做了,它下载了gem。我的问题是“omniauth steam”没有找到这个宝石,而是使用了它自己的Gemspec中的宝石。