27

我从 Gemfile 中删除了一个 gem 'mygem',但刚才我意识到它仍然被安装。

那么如何告诉 bundler 重新扫描 Gemfile 并更新 Gemfile.lock,而不更新每个 gem?

来自 php,这就是我习惯这样做的方式:composer update nothing. 捆绑器是否有等价物?

4

2 回答 2

42

您可以只运行bundlebundle install安装基于您的 Gemfile 的 gem。这mygem将从您的 Gemfile.lock 文件中删除实例。但是,它不会从您的系统中删除 gem。为此,请运行gem uninstall mygem.

不完全相关,但仍然有帮助:

  • bundle outdated将向您展示不在最新版本上的宝石。不要纠结于这个列表——拥有不在最新版本上的 gem 是很常见的,因为一些 gem 是作为依赖项安装的,一个 gem 可能需要另一个 gem 的旧版本。
  • bundle upgrade mygem将只升级该 gem,并将其依赖项更新。这意味着也可能会升级或安装其他 gem。
  • 您可以搜索RubyGems以查看 gem 的每个版本之间的依赖关系。作为 gem 用户,您只需要关注 gem 页面底部的“运行时依赖项”列表。
于 2013-07-22T20:03:33.763 回答
0

清理捆绑器目录中未使用的 gem: bundle clean --force

于 2017-04-12T14:13:11.163 回答