卸载不在指定的Gemfile.lock文件列表中的所有gem

btd*_*btd 2 ruby rubygems bundler

我想清理一个小系统.实质上,

(Gem.all_system_gems - Bundler.referenced_gems(array_of_gemfile_locks)).each do |gem, ver|
  `gem uninstall #{gem} -v #{ver}
end
Run Code Online (Sandbox Code Playgroud)

任何这样的RubyGems/Bundler方法?或者任何已知/有效的方法来实现它?

谢谢,本

geo*_*ngs 8

Bundler有一个clean删除未使用的宝石的命令.

bundle clean --force
Run Code Online (Sandbox Code Playgroud)

这将删除当前项目不需要的所有宝石.

如果要保持系统的gem存储库清洁,则应考虑使用该--path选项bundle install.这将允许您将项目依赖项保留在系统的gem存储库之外.