Goをきれいにする: Go環境をきれいにするためのガイド
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
go clean
を使用して、ビルドアーティファクトとキャッシュされたテスト結果を削除します。- モジュールとビルドのキャッシュを定期的にクリアして、ディスク容量を解放します。
- 意図しない削除を避けるため、実行前に
-n
でクリーニングアクションをプレビューします。
効率的なワークフローと最適なパフォーマンスのために、クリーンなGo開発環境を維持することは不可欠です。時間が経つにつれて、さまざまなビルドアーティファクトとキャッシュされたファイルが蓄積され、ディスク容量を消費し、潜在的に不整合を引き起こす可能性があります。Goは、開発者がこれらの不要なファイルを削除するのに役立つgo clean
コマンドを提供します。
go clean
コマンドの理解
go clean
コマンドは、オブジェクトファイルとキャッシュされたデータをGoワークスペースから削除するように設計されています。 Goはほとんどのオブジェクトを一時ディレクトリにビルドしますが、特に他のツールまたは手動ビルドプロセスによって生成されたファイルは、一部のファイルが残る可能性があります。 go clean
コマンドは、このような残りのファイルを削除することでこれに対処します。
基本的な使い方
現在のモジュールのディレクトリをクリーンアップするには、モジュールのルートに移動して次を実行します。
go clean
このコマンドは、モジュールに固有のオブジェクトファイルとキャッシュされたテスト結果を削除します。
インストールされたパッケージのクリーンアップ
パッケージに関連付けられたインストール済みアーカイブまたはバイナリファイルを削除する場合は、-i
フラグを使用します。
go clean -i [package_name]
[package_name]
を特定のパッケージパスに置き換えます。 これは、パッケージをアンインストールしたり、新しいビルドを確実に実行したりする必要がある場合に特に役立ちます。
依存関係の再帰的なクリーンアップ
パッケージとそのすべての依存関係にクリーンアップ操作を適用するには、-r
フラグを利用します。
go clean -r [package_name]
これにより、指定されたパッケージだけでなく、そのすべての依存パッケージもクリーンアップされます。
ビルドキャッシュの削除
Goは、後続のコンパイルを高速化するためにビルド出力をキャッシュします。 ただし、ビルドの不整合を解決したり、ディスク容量を回復したりするなど、ビルドキャッシュをクリアする必要があるシナリオがあります。 ビルドキャッシュ全体を削除するには、次を実行します。
go clean -cache
このコマンドは、ビルドキャッシュディレクトリ内のすべてのファイルを削除します。これは、次を使用して見つけることができます。
go env GOCACHE
キャッシュをクリアすると、Goはパッケージを最初からリビルドする必要があるため、後続のコンパイルのビルド時間が長くなる可能性があることに注意してください。
モジュールダウンロードキャッシュのクリア
モジュールダウンロードキャッシュは、冗長なネットワーク呼び出しを回避するためにダウンロードされたモジュールを保存します。 このキャッシュをクリアするには、次を使用します。
go clean -modcache
このコマンドは、モジュールキャッシュに保存されているすべてのモジュールを削除します。モジュールキャッシュは通常、$GOPATH/pkg/mod
にあります。 モジュールキャッシュをクリアすると、特に多数の依存関係を扱っている場合に、かなりのディスク容量を解放できます。
テスト結果キャッシュの期限切れ
Goはテスト結果をキャッシュして、テストのパフォーマンスを最適化します。 キャッシュされたすべてのテスト結果の期限切れが必要な場合は、次を実行します。
go clean -testcache
これにより、Goはすべてのテストを再実行し、結果がコードベースの現在の状態を確実に反映するようにします。
Fuzzテストキャッシュの削除
Goのファズテスト機能を利用している開発者にとって、ファズキャッシュはコードカバレッジを拡大する入力を保存します。 このキャッシュをクリアするには、次を実行します。
go clean -fuzzcache
これらのファイルを削除すると、同じカバレッジを提供する新しい入力が見つかるまで、ファジングの効果が低下する可能性があることに注意してください。
追加のフラグ
go clean
コマンドは、その動作を制御するためのいくつかのフラグを提供します。
-n
: 実際に実行せずに、実行されるコマンドを出力します。-x
: コマンドが実行されるときに出力します。-v
: 詳細な出力を有効にし、クリーニングプロセスを詳細に示します。
たとえば、削除せずにどのファイルが削除されるかを確認するには、次を使用します。
go clean -n
ベストプラクティス
- 定期的なメンテナンス: ディスク使用量を効果的に管理するために、ビルドおよびモジュールキャッシュを定期的にクリーンアップします。
- フラグの注意:
-cache
や-modcache
などのフラグは、すべてのプロジェクトに影響を与えるグローバルキャッシュを削除するため、慎重に使用してください。 - 削除前の確認:
-n
フラグを使用して、実行前にアクションをプレビューし、意図しないファイルが削除されないようにします。
go clean
コマンドを開発ワークフローに組み込むことで、整然としたGo環境を維持し、より予測可能なビルドと効率的なプロジェクト管理を実現できます。
FAQs
ディスク容量を回復するために、ダウンロードしたすべてのGoモジュールをモジュールキャッシュから削除します。
ビルドの不整合が発生した場合、またはパッケージを最初からリビルドする必要がある場合に使用します。
いいえ、ビルドアーティファクト、キャッシュされたファイル、テスト結果のみを削除し、ソースコードは削除しません。
私たちはLeapcellであり、Goプロジェクトをホストするための最適な選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedis向けの次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い—リクエストなし、料金なし。
比類のないコスト効率
- アイドル料金なしの従量課金制。
- 例:25ドルで、平均応答時間60ミリ秒で694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高性能
- 高い同時実行性を簡単に処理するための自動スケーリング。
- 運用上のオーバーヘッドゼロ—構築に集中するだけです。
ドキュメントで詳細をご覧ください!
Xでフォローしてください: @LeapcellHQ