インストールされているgemを一括で削除する

  • 24
    いいね
  • 0
    コメント

bundle installするときに--path vendor/bundleを付け忘れてRailsアプリケーションのgemがrubyのディレクトリにごっそりインストールされてしまうというのはよくある操作ミス。

そのたびに http://qiita.com/yuki24/items/2e6258b7c6a5b13b7d16 などを参考に削除していたのだけど、デフォルトで削除できないgemがいくつかあってエラーで止まってしまう。それにbundlerやpryのように残しておきたいgemもある。

そこで上の削除方法を少しだけ改良して、削除できない/削除したくないgemを除外できるようにした。

gem uninstall $(gem list --no-versions|ruby -pe 'gsub(/bundler|bigdecimal|io-console|json|minitest|pry|psych|rake|rdoc|test-unit/,"")')

普通はsedを使うところなのだろうけど、せっかくなのでrubyで文字列処理を行った。

追記

-aIx付けたほうがいい。実はどこかからコピーしたコードだけど引用元が思い出せない。

gem uni -aIx $(gem li --no-versions | grep -v -E "rdoc|psych|io-console|bigdecimal|rake|json|openssl")