gem list在更新gem之后立即显示两个版本的Ruby gem

时间:2011-11-28 21:34:08

标签: ruby-on-rails gem versioning mime-types

我刚用gem update mime-types更新了mime-types gem。更新前gem list显示mime-types (1.16)。更新后gem list显示mime-types (1.17.2, 1.16)。为什么要显示两个版本?

更多信息:我在同一台计算机上有其他Rails项目。我没有在任何其他项目中更新mime-types gem。从另一个项目的目录(其中mime-types尚未更新)运行gem list显示mime-types (1.16)

3 个答案:

答案 0 :(得分:3)

您已安装两个版本。如果要删除旧版本(由于依赖性而无法永远删除),请使用gem cleanup

答案 1 :(得分:1)

你有哪个版本的RubyGems? gem -v

这很有趣:我有最新版本的RubyGems,但我的系统行为不同:

gem list =>所有宝石,所有版本。 无论我在哪里打电话。
gem list --local =>与以前相同但是在用户范围内。

bundle list =>项目中的所有宝石(每个宝石一个版本)

bundle updategem update同样如此。

bundle update将旧版本替换为新版本(捆绑程序依赖于依赖项),但gem update保留两者。因此,如果您只想保留最新版本,请运行gem cleanup

bundle outdated可能有用:它会在您的项目中显示过时的宝石(基于rubygems.org)

答案 2 :(得分:1)

这可能因为gem依赖而发生。

例如,如果另一个gem依赖于该gem,而另一个gem没有为其指定版本,并且(/或)它会更新,如果它对该gem的版本的依赖性改变了...那么你得到了想法。
有时候我会捆绑一下,看到大量的新版本下载了。一切都是由于改变了...依赖。