如何撤消捆绑安装



我正在写一个Octopress博客,所以我建立了一个单独的gemset并执行了rvm use gemset octopress。一切都很顺利。然而,我打开了一个新的ZSH选项卡(如果相关的话,我在OS X Mountain Lion上),它又回到了我使用的前一个宝石集。我当时并不知道,所以我运行了bundle install。我注意到它安装了我已经安装在Octopress宝石集中的所有宝石,所以我弄清楚发生了什么。问题是:有没有一种简单的方法可以撤消这个bundle install,这样我就不会在其他gemset中拥有所有这些gem,或者我应该逐个gem手动卸载它们(它们相当多)。谢谢

您可以使用rvm:清空宝石集

rvm gemset empty

它将删除所选宝石集中的所有宝石,您也可以使用临时切换到其他宝石集

rvm @the-other-gemset do rvm gemset empty

几天前,我(再次)遇到了同样的问题,并通过编写以下命令解决了它:

$ threshold="20m"; dir="`rvm gemdir`/gems"; find -X "$dir" -type d -maxdepth 1 -mindepth 1 -mtime -"$threshold" | xargs basename | sed -e 's/-(([0-9]{1,}.)*[0-9]{1,})$/ 1/g' -e 's/(.*) (.*)/gem uninstall 1 --version 2 --executables --ignore-dependencies &/g'

它会生成尽可能多的命令行,用于卸载在给定阈值之后添加的每个gem(以上为20分钟)。然后,您只需在命令提示下复制并粘贴这些行。

在执行我的命令之前:

  1. 确保当前的宝石组是一个混乱的宝石组
  2. threshold设置为适合您需要的值

例如,上面的命令可以生成以下行:

gem uninstall elasticsearch --version 1.0.1 --executables --ignore-dependencies &
gem uninstall elasticsearch-api --version 1.0.1 --executables --ignore-dependencies &
gem uninstall elasticsearch-extensions --version 0.0.14 --executables --ignore-dependencies &
gem uninstall elasticsearch-transport --version 1.0.1 --executables --ignore-dependencies &

如果你想了解更多信息,我在这里发布了一篇文章:http://noteslog.com/post/how-to-undo-a-wrong-bundle-install/

相关内容

  • 没有找到相关文章

最新更新