Diskzyv0.1
Mit Bedacht löschen

Was ist ~/go/pkg/mod auf dem Mac? Kann man es löschen?

Kurze Antwort

Du kannst den Go-Modul-Cache löschen, und Go lädt die Module beim nächsten Build erneut. Nimm dafür go clean -modcache, denn die Dateien sind schreibgeschützt, und der Finder oder rm melden Fehler.

Wo es liegt

~/go/pkg/mod

Was es ist

Wenn ein Go-Projekt eine Abhängigkeit braucht, lädt der Befehl go diese Modulversion in den Modul-Cache, standardmäßig ~/go/pkg/mod. Alle Projekte auf deinem Mac teilen sich diesen einen Cache.

Er wächst, weil jede Version jedes Moduls getrennt gespeichert wird und nichts die alten entfernt. Ein paar große Abhängigkeitsbäume summieren sich schnell.

Go markiert die Dateien im Cache absichtlich als schreibgeschützt, damit Builds sie nicht versehentlich verändern. Deshalb führt das Löschen des Ordners von Hand zu Berechtigungsfehlern.

Wie groß es wird

Meist einige GB bei regelmäßiger Go-Entwicklung.

So leerst du es von Hand

  1. Öffne das Terminal.
  2. Führe den Befehl unten aus. Er löscht den gesamten Download-Cache für Module, einschließlich des entpackten Quellcodes jeder Version jeder Abhängigkeit.
  3. Wenn du GOMODCACHE oder GOPATH auf einen anderen Ort gesetzt hast, leert der Befehl trotzdem den richtigen Ordner. Den Ort kannst du mit go env GOMODCACHE prüfen.
Im Terminal
go clean -modcache

Was danach passiert

Das nächste go build oder go test in jedem Projekt lädt seine Abhängigkeiten erneut, ist also langsamer und braucht eine Netzwerkverbindung. Dein eigener Code und installierte Go-Binärdateien werden nicht entfernt.

Wie Diskzy damit umgeht

Diskzy listet den Go-Modul-Cache im Tab „Clean up“ (Aufräumen) auf, lässt ihn aber nicht angehakt, weil dein nächster Build alles erneut laden müsste.

Verwandte Ratgeber

Sieh, wo der Platz auf deinem Mac geblieben ist

Diskzy kartiert dein Laufwerk, erklärt die Systemdaten und räumt weg, was gefahrlos weg kann. 72 Stunden kostenlos, danach einmalig 9 $ für 2 Macs.

Diskzy kostenlos testen
Lies das auf:EnglishEspañolDeutschPortuguêsFrançaisTürkçe日本語