参考
byのインストールした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'`
egrepの中身を
rbenv exec gem uninstall -aIx `gem list --no-version`
で
ERROR: While executing gem ... (Gem::InstallError)
gem "test-unit" cannot be uninstalled because it is a default gem
__cannot be uninstalled because it is a default gem__と怒られたgemを
|
で繋いでいくとやがて全てのgemをアンインストールできる。
結果こうなった。
gem uninstall -axI `gem list --no-versions | egrep -v 'rdoc|psych|json|io-console|bigdecimal'`
Bundlerまで消去されてしまうので、その後
rbenv exec gem install bundler
を実行する。