2017-02-18 2 views
1

nach ein oder zwei Jahren Entwicklung mit GO Ich schaute auf meine $ GOPATH Verzeichnisgröße und war überrascht zu sehen, dass es auf 4 GB wuchs.

Ich verstehe, dass Speicherplatz (und es ist nicht so viel auf diesem 128 GB Laptop SSD) soll billig sein, aber immer noch.

Also meine Fragen ist, gibt es einige gute Praxis, um die Größe $ GOPATH Verzeichnis zu verwalten?

Würden Sie von vorne anfangen, wäre das eine gute Idee? (obwohl sehr zeitaufwändig sein könnte)

+0

Ihr GOPATH enthält nicht nur die Quelle der Pakete, sondern auch die Objektdateien, manchmal sogar für verschiedene Architekturen (wenn Sie crosscompiliert haben) und/oder mit aktivierter Rennerkennung. Da diese im Grunde nur zwischengespeicherte Versionen sind, können Sie sie löschen (sie befinden sich in GOPATH/pkg). – Volker

+0

Wie go get funktioniert ein Git Klon für die Abhängigkeiten Sie können auch eine git gc --aggressive ausführen, um Speicherplatz freizugeben. –

+0

Auch bestimmte Editoren (zB Atom) erstellen spezielle ausführbare Dateien neben Quelldateien, wenn Sie Apps oder Tests debuggen (zB ' debug '), die Sie frei löschen können. – icza

Antwort

2

Ihre Aussage, dass das Löschen der GOPATH würde zeitaufwendig sein, klingt wie Sie verwalten die Abhängigkeiten Ihrer Go-Projekte mit einfachen go get .... In meiner Umgebung mache ich zwei Dinge um die GOPATH ephemeren zu machen.

  1. Verwenden Sie nicht einfach go get für Abhängigkeitsverwaltung. Go 1.6 führte das Verzeichnis /vendor ein. Zusammen mit einem Abhängigkeitsverwaltungstool wie Glide liegt jede Abhängigkeit für ein bestimmtes Projekt im Projektverzeichnis.

    1. Das bedeutet, wenn keine Abhängigkeit mehr benötigen können Sie das vendor Verzeichnis des Projekts wischen und die Abhängigkeiten erneut herunterladen. Daher haben Sie nur Abhängigkeiten von Ihrer Festplatte, die Sie tatsächlich benötigen.

    2. Wenn Sie aufhören, an einem Projekt zu arbeiten und es von Ihrer Festplatte löschen, werden die Abhängigkeiten ebenfalls gelöscht.

  2. Sie können mehrere Pfade in GOPATH angeben. Wie die Umgebungsvariable PATH können Sie sie durch einen Doppelpunkt trennen. Interessant ist, dass Go den ersten Pfad zum Herunterladen von Projekten verwendet. Auf meinem Gerät sieht die GOPATH wie $HOME/.gopath:$HOME/projects aus. Wenn Sie also alle Ihre tatsächlichen Projekte in das zweite Verzeichnis stellen, haben Sie eine klare Trennung zwischen Ihren Projekten und Abhängigkeiten. So können Sie das erste Verzeichnis von Zeit zu Zeit löschen, müssen aber nicht befürchten, dass Sie jedes Ihrer Projekte erneut klonen müssen.

Diese beiden Dinge nicht helfen, die Festplattennutzung Ihrer Go-Projekte und deren Abhängigkeiten zu reduzieren, aber einen besseren Überblick bekommen was tatsächlich benötigt und macht Sie in der Lage, die Abhängigkeit Verzeichnis zu löschen, wann immer Sie möchten.

Verwandte Themen