Ruby on Railsで開発をしているとBundlerのディレクトリに使用されていないバージョンのGemが溜まっていく。
それなりにディスクを消費するので古いバージョンのGemは削除したい。

bundle clean

bundle cleanコマンドでBundlerのディレクトリから使用されていないバージョンのGemを削除できる。

$ bundle clean
Removing ast (2.4.2)
Removing aws-partitions (1.711.0)
Removing aws-sdk-s3 (1.119.1)
Removing backport (1.2.0)
Removing bcrypt (3.1.18)
.
.
.

–pathでディレクトリを指定している場合

--pathオプションでディレクトリを指定している場合はbundle cleanの実行に失敗する。

$ bundle clean
Cleaning all the gems on your system is dangerous!
If you're sure you want to remove every system gem not in this bundle,
run `bundle clean --force`.

メッセージにあるように--pathで指定したディレクトリのGemを削除するには--forceオプションを付ける。

$ bundle clean --force
Removing ast (2.4.2)
Removing aws-partitions (1.711.0)
Removing aws-sdk-s3 (1.119.1)
Removing backport (1.2.0)
Removing bcrypt (3.1.18)
.
.
.

dry run

--dry-runオプションを付けると削除されるGemを一覧で確認できる。

$ bundle clean --dry-run
Would have removed ast (2.4.2)
Would have removed aws-partitions (1.711.0)
Would have removed aws-sdk-s3 (1.119.1)
Would have removed backport (1.2.0)
Would have removed bcrypt (3.1.18)
.
.
.