宝石列表包含对某个宝石的多个依赖项

时间:2013-02-24 13:13:37

标签: ruby-on-rails bundler

我有unicorn 4.5.0,在我bundle update后,我观察到同一个宝石的不同版本,即使我想使用最新版本。

unicorn (4.6.1, 4.5.0)

如何指示捆绑商保留最新版本。

2 个答案:

答案 0 :(得分:1)

您可以通过将该版本放在gem文件中来指示bundler只使用一个版本。有时候,我和rake有冲突,即使我没有在我的Gemfile中明确地使用rake,所以我必须把rake版本放在我的Gemfile顶部的所有其他gem中。

如果您的问题是您曾经使用过unicorn 4.5.0,现在它已经在您的本地gem源中安装了unicorn 4.6.1,您可以告诉gem卸载您不再需要的版本。

gem uninstall unicorn --version 4.5.0

如果你做了一个bundle --deployment并填充了vendor / bundle目录,那就是你要删除gem的地方,那么我通常只是删除gem目录,但是,我认为你可以运行bundle with - -path,如下所示:

bundle --deployment --path vendor/bundle
gem uninstall unicorn --version 4.5.0

运行bundler时,它会记住这些设置。关于--without开关,我痛苦地发现了这一点。 --path设置将告诉gem使用本地vendor / bundle目录作为本地gem源。请记住再次运行bundle来设置路径。

答案 1 :(得分:1)

据我所见,您无法指示bundler在更新时仅保留最新版本。您可以一次性删除所有宝石的所有旧版本:

bundle exec gem cleanup

(Reference)