コマンドでGemをアンインストールする

グローバル環境にGemをインストールしていて不要なGemをアンインストールする必要が出てきたとき、もしくは環境構築用のスクリプトを作成するときに下記のスクリプトを実行することでデフォルト以外のGemをアンインストールできる。

ただし grep -v "default" は行に default が含まれると丸ごと除外するため、デフォルト版と追加インストール版が同居している Gem はアンインストール対象から漏れる。

Ruby >= 2.4

gem list | grep -v "default" | cut -d " " -f 1 | xargs gem uninstall -aIx
gem install bundler --no-document

Ruby < 2.4

gem list --detail | perl -pe 's/\n/\t/g' | perl -pe 's/\t+   //g' | perl -pe 's/\t/\n/g' | grep -v 'default\|^\s*$' | cut -d " " -f 1 | xargs gem uninstall -aIx
gem install bundler --no-document