このブログをご覧のみなさん、こんにちは。

Rubyのインストールしたgemをすべて削除したい場合があります。例えば、 bundle install --path を指定していなかった場合などです。単純に gem uninstall を実行すると、

$ gem uninstall
ERROR:  While executing gem ... (Gem::CommandLineError)
    Please specify at least one gem name (e.g. gem build GEMNAME)

というように gem の名前を指定していないのでエラーになってしまいます。じゃぁ、指定してやればいいんだろ!と以下を実行すると、

$ gem uninstall -axI `gem list --no-versions`
Successfully uninstalled uglifier-2.5.3
Successfully uninstalled turbolinks-2.4.0
ERROR:  While executing gem ... (Gem::InstallError)
    gem "test-unit" cannot be uninstalled because it is a default gem

というように default gem を消そうとしてエラーになってしまいます。じゃぁ、default gem 以外指定してやればいいんだろ!と以下を実行するとやっとすべて削除できます。

$ gem uninstall -axI `gem list --no-versions | egrep -v 'test-unit|rdoc|psych|minitest|io-console|rake|bigdecimal|json'`

参考資料