注意して削除
Macの ~/go/pkg/mod とは。削除しても安全か
結論
Goのモジュールキャッシュは削除でき、次にビルドしたときにGoがモジュールをもう一度ダウンロードします。ファイルは読み出し専用で、Finderやrmではエラーになるため、削除には go clean -modcache を使ってください。
場所
~/go/pkg/modこれは何か
Goのプロジェクトで依存関係が必要になると、goコマンドはそのバージョンのモジュールをモジュールキャッシュにダウンロードします。デフォルトの場所は ~/go/pkg/mod です。Mac上のすべてのプロジェクトが、この1つのキャッシュを共有します。
大きくなるのは、各モジュールの各バージョンが別々に保存され、古いものが削除されないからです。大きな依存関係ツリーがいくつかあるだけで、すぐに積み重なります。
Goは、ビルドが誤って変更してしまわないよう、キャッシュされたファイルを意図的に読み出し専用にしています。フォルダを手動で削除しようとするとアクセス権のエラーになるのは、このためです。
どのくらい大きくなるか
Goでの開発を日常的に行っている場合、通常は数GBです。
手動で消去する方法
- ターミナルを開きます。
- 下記のコマンドを実行します。依存関係の全バージョンの展開済みソースを含め、モジュールのダウンロードキャッシュ全体が削除されます。
- GOMODCACHEやGOPATHを別の場所に設定している場合でも、このコマンドは正しいフォルダを消去します。場所は go env GOMODCACHE で確認できます。
ターミナルで
go clean -modcache削除したあとはどうなるか
各プロジェクトでの次回の go build や go test では、依存関係をもう一度ダウンロードするため、時間がかかり、ネットワーク接続が必要になります。自分のコードとインストール済みのGoバイナリは削除されません。
Diskzyでの扱い
Diskzyは「Clean up」(クリーンアップ)タブにGoのモジュールキャッシュを表示しますが、次のビルドですべてをもう一度ダウンロードすることになるため、チェックは外したままにします。
関連ガイド
Macの空き領域がどこに消えたのかを確認
Diskzyはディスク全体をマップにし、システムデータの内訳を示し、安全なものを消去します。72時間は無料、その後は$9の買い切りでMac 2台まで使えます。
Diskzyを無料で試す