【问题标题】:Could not find mime-types-2.4.2 in any of the sources在任何来源中都找不到 mime-types-2.4.2
【发布时间】:2014-10-21 17:34:50
【问题描述】:

Ruby 版本是 2.1.3,rails 版本是 4.1.6

当我在我的办公系统中启动代码时,使用上述版本的捆绑器运行顺利,

用上面提到的相同版本克隆到我的家用机器后,bundler 没有运行 最终出现以下错误。

捆绑安装

https://rubygems.org/....获取gem元数据......

在任何来源中都找不到 mime-types-2.4.2

【问题讨论】:

  • 我在尝试部署到 heroku 时遇到同样的错误。

标签: ruby-on-rails bundle ruby-on-rails-4.1


【解决方案1】:

运行bundle update mime-types。他们将 2.4.2 版本替换为 2.4.3。

如您所见,此处缺少 2.4.2:https://rubygems.org/gems/mime-types

【讨论】:

  • 我不清楚为什么它不能在 Heroku 上运行——如果你更新 Gemfile.lock 并提交,那么你应该能够部署。
【解决方案2】:

正如@allaire 所说,我删除了 mime-types 2.4.2,因为它破坏了受支持的平台(Ruby 1.9.2)。我是在发布 mime-types 2.4.3 之后这样做的。

为什么?因为 rest-client 使用 mime-types,它同时支持 mime-types 1 和 mime-types 2(因为 mime-types 2 不支持 Ruby 1.8)。即使我没有在 Travis 上针对 Ruby 1.9.2 进行测试(各种原因,包括可用性),我仍然支持 Ruby 1.9.2 直到 mime-types 3。rest-client 版本依赖项是 @987654321 @;正因为如此,任何使用 Ruby 1.9.2 的人都需要它说 >= 1.16, < 3.0, != 2.4.2。据我所知,RubyGems 不支持 != 版本限制,而强制执行该限制的唯一方法是通过 yanking 使其无法安装 2.4.2。

很抱歉发生了这种情况,一般来说,这种情况不应该再次发生,因为我现在有一个运行 Ruby 1.9.2 的 Vagrant VM 能够运行一些测试,因为我无法有效地做到这一点在特拉维斯上。

【讨论】:

  • 基于这里和其他地方的 cmets,我已经取消了 2.4.2。如果您使用的是 Ruby 1.9.2,则必须使用 2.4.1 或 2.4.3。
  • 我重新加载了 rvm,捆绑更新 mime-types,2.4.3 在我的 gemfile.lock 中,捆绑列表显示了它,但加载时我仍然找不到 mime-types 2.4.3开发机器上的环境
  • 从 ruby​​ 2.1.2p95 切换到 2.1.3 并运行 bundle install 后,问题消失了。显然这是一些 rvm 的事情。
猜你喜欢
  • 2014-12-02
  • 2016-07-13
  • 1970-01-01
  • 2018-01-31
  • 2012-03-12
  • 2013-12-25
  • 2017-07-18
  • 2012-07-22
  • 2011-11-28
相关资源
最近更新 更多