$ 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'