$ bundle uninstall --all
みたいなことは出来ないので自力でやる。
$ bundle list | grep -v Gems | ruby -ne 'system("gem uninstall -x %s -v \"%s\"" % $_.match(/\*\s+(.+)\s+\((.+)\)/)[1, 2])'
bundle list で一覧を取得して、grep で不要な行を消す。あとは ruby でパースして gem uninstall -x piyo -v "x.x.x" を呼んでいるだけである。日本語で説明する必要もなかった。
もっと短くできそう。
bundler で Gem を管理するときは bundle install --path vendor/bundle のように --path オプションを付けるように心掛けたい。
一度 --path オプション付きでインストールするとカレントディレクトリの .bundle/config に以下のような設定が追加されて、次回移行はこれを読んでくれる。
--- BUNDLE_PATH: "vendor/bundle" BUNDLE_DISABLE_SHARED_GEMS: '1'