2017-02-18 3 views
1

GOを使って1〜2年後に開発しました$ GOPATHディレクトリサイズを見て、それが4GBに成長しているのを見て驚いています。

私は、ディスク容量が安いとはいえ、まだこの128GBのノートパソコンのSSDではないと思っています。

私の質問は、サイズ$ GOPATHディレクトリを管理するいくつかの良い習慣はありますか?

ゼロから再起動するのは良い考えですか? (非常に時間がかかるかもしれませんが)

+0

GOPATHには、パッケージのソースだけでなくオブジェクトファイルも含まれています。異なるアーキテクチャ(クロスコンパイルされている場合)や競合検出が有効な場合もあります。これらは基本的にキャッシュされたバージョンなので、削除することができます(GOPATH/pkgにあります)。 – Volker

+0

依存関係のgit cloneを実行すると、git gc --aggressiveを実行して空き領域を解放することもできます –

+0

また、特定のエディタ(たとえばAtom)は、アプリケーションやテストをデバッグするときに、デバッグ ')、あなたは自由に削除することができます。 – icza

答えて

2

GOPATHを削除すると、Goプロジェクトの依存関係を平文go get ...で管理しているように、時間がかかります。私の環境では、GOPATHを一時的にするために2つのことを行います。

  1. 従属性管理のためにプレーンテキストgo getを使用しないでください。 Go 1.6は/vendorディレクトリを導入しました。 Glideのような依存性管理ツールと一緒に、特定のプロジェクトのすべての依存関係は、プロジェクトディレクトリにあります。

    1. これはもう依存性を必要としない場合は、プロジェクトのvendorディレクトリを拭いて、もう一度依存関係をダウンロードすることができ、意味。したがって、実際に必要とするディスクにのみ依存関係があります。

    2. また、プロジェクトの作業を中止してディスクから削除すると、依存関係も削除されます。

  2. GOPATHに複数のパスを指定できます。 PATH環境変数のように、コロンで区切ることができます。興味深いことに、Goはプロジェクトをダウンロードするための最初のパスを使用します。私のマシンでは、GOPATH$HOME/.gopath:$HOME/projectsのように見えます。したがって、実際のプロジェクトをすべて2番目のディレクトリに置くと、プロジェクトと依存関係が明確に分離されます。したがって、最初のディレクトリを時々消すことができますが、すべてのプロジェクトをクローンしなければならないことを恐れる必要はありません。

これら二つのことは、あなたの移動のプロジェクトとその依存関係のディスク使用量を減らすためには役立ちませんが、実際に必要ないただきました方が良いの概要を取得し、あなたが好きなときに、依存関係のディレクトリを削除するあなたができるようになります。

関連する問題