我通过Gemfile使用bundler安装了我所有的gem。我认为(错误地)如果我从Gemfile中删除了一个gem并运行'bundle install‘,那么删除的gem就会被卸载。我已经查看了bundler帮助文件,据我所知,它没有卸载gem的方法。
我只需要使用gem uninstall x就可以了吗?这会让bundler感到困惑吗?
发布于 2011-01-12 18:52:39
Bundler是从应用程序的根目录启动的,因此它确保存在所有需要的gem来获取您的应用程序working.If出于某些原因,您不再需要gem您必须运行
gem uninstall gem_name
正如您声明的那样,每次运行bundler时,above.So都会重新检查依赖项
编辑- 24.12.2014
我看到人们不断地来问这个问题,我决定添加一些东西。我给出的答案是当你在全球范围内维护你的gem时。考虑使用诸如rbenv或rvm之类的gem管理器来将gem集限定在特定项目的范围内。
这意味着不会在全局级别安装任何gem,因此,当您从项目的Gemfile中删除一个gem并重新运行bundle时,它显然不会加载到您的项目中。然后,您可以运行bundle clean (使用项目目录),它将从系统中删除所有曾经从Gemfile (位于同一目录中)安装的gem,但此时不再列出这些gem……长话短说-它删除了未使用的宝石。
发布于 2019-04-15 22:19:05
Bundler现在有了一个bundle remove GEM_NAME
命令(从v1.17.0, 25 October 2018开始)。
发布于 2012-01-06 23:42:29
您必须使用'gem uninstall gem_name‘卸载gem。
请注意,如果您在系统范围内安装了gem (即,sudo bundle install),然后您可能需要使用-n选项指定二进制目录,以确保删除属于gem的二进制文件。例如
sudo gem uninstall gem_name -n /usr/lib/ruby/gems/1.9.1/bin
https://stackoverflow.com/questions/4667150
复制相似问题