【问题标题】:Bundler cannot find a version of a gem, but gem install with the same name worksBundler 找不到 gem 的版本,但 gem install 同名有效
【发布时间】:2012-12-07 07:32:24
【问题描述】:

我创建了一个 gem,由于某种原因,这个 gem 一直困扰着我,并且拒绝通过 bundler 正确安装。

这是Gemfile

source 'https://rubygems.org'
gem 'rails', '3.2.9'
gem "switch_access-rails", "~> 1.1.6"

捆绑安装失败:

Could not find gem 'switch_access-rails (~> 1.1.6) ruby' in the gems available on this machine.

这行得通:

gem install switch_access-rails -v 1.1.6 

宝石在 ruby​​gems 上:https://rubygems.org/gems/switch_access-rails/versions/1.1.6

我什至尝试从 1.1.5 版本升级到 1.1.6 版本,看看是否有帮助。

使用 bundle install 安装 1.1.4 版有效。

关于从哪里开始查找/调试捆绑安装的任何提示?

【问题讨论】:

    标签: ruby-on-rails bundler gemfile


    【解决方案1】:

    经过一整天的谷歌搜索,我发现了 12 月 12 日的状态更新:http://twitter.com/rubygems_status/status/279019743166476288

    bundle install --full-index
    

    似乎直接从 ruby​​gems 而不是从云端缓存获取索引。

    我查看了索引,两个索引有很大的不同,所以如果你刚刚发布了一个gem或者使用了一个新发布的gem,你可能需要添加--full-index才能得到正确的索引。

    【讨论】:

    • 刚刚发生在我身上的 aws-sdk 3.0.1 gem
    • 我也有类似的问题。我尝试了您的解决方案并遇到了以下问题:/usr/bin/env: ruby_executable_hooks: No such file or directory
    • @CuriousDeveloper 这看起来更像是缺少 ruby​​、rbenv 或 rvm 的设置。尝试重新安装 rbenv、ruby 和/或 rvm,具体取决于您的设置,因为它缺少可执行文件。
    • @leifcr,感谢您的建议,我的问题现已解决。我遇到了一个不同的问题,也许你可以帮我解决这里是帖子链接:serverfault.com/questions/941802/…
    【解决方案2】:

    您是否将 ruby​​gems 列为远程来源?

    您的Gemfile 应该在文件顶部有source :rubygems,并且$ gem sources 应该至少返回:

    *** CURRENT SOURCES ***
    
    http://rubygems.org/
    

    如果没有列出,可以用$ gem sources -a http://rubygems.org添加

    【讨论】:

    • 对不起。忘记从我的 Gemfile 中复制它,因为我将它修剪到最低限度。然而我找到了答案。似乎是 ruby​​gems 索引上的云端元数据缓存问题,因为 gem 于今天发布。
    猜你喜欢
    • 2019-03-28
    • 2018-04-02
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2013-07-07
    • 2017-07-17
    • 2018-02-09
    相关资源
    最近更新 更多