Symptome und Geltungsbereich
- GC gibt trotz großem /nix/store wenig frei.
- Bauten verlieren Dateisystemplatz, während viele alte Ausgaben referenziert bleiben.
Betroffene Umgebung
Nix-Store-Garbage-Collection, Profilgenerationen und direkte oder indirekte GC-Wurzeln.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Profile, frühere Systemgenerationen oder result-Links können große Abhängigkeitsmengen halten.
- Dateisystemverbrauch kann Daten außerhalb des Stores enthalten; Store-Größe ist nicht gleich freigebbarer Platz.
Sicher prüfen
Führe jeweils einen Befehl in der passenden Sitzung aus. Lies zuerst die Erklärung. Großgeschriebene Platzhalter brauchen deine Werte; Werkzeuge und Rechte unterscheiden sich je nach Distribution. Die Website zeigt Befehle an und führt sie niemals aus.
Prüfschritt 1
Die Unteroperation --print-roots listet Wurzeln statt zu löschen; lasse diese Option nicht weg.
nix-store --gc --print-rootsErgebnis einordnen: Profil- und result-Wurzeln erklären gehaltene Inhalte. Wurzeln können indirekt sein und anderen Benutzern oder Projekten gehören.
Prüfschritt 2
Listet Systemprofilgenerationen ohne Wechsel oder Löschen; Profilzugriff kann eingeschränkt sein.
nix-env --profile /nix/var/nix/profiles/system --list-generationsErgebnis einordnen: Vergleiche ältere Generationen mit bewusst behaltenen Rückwegen. Benutzerprofilgenerationen sind eine eigene Wurzelmenge.
Prüfschritt 3
Liest Dateisystemplatz ohne Store-Dateien zu durchsuchen oder zu verändern.
df -h /nix/storeErgebnis einordnen: Wenig freier Platz kann auch von anderen Verzeichnissen dieses Dateisystems stammen. Prüfe Inodes bei Allokationsfehlern trotz freier Bytes.
Nächste Schritte nach Befund
Nur veraltete Wurzeln gezielt aufgeben
Wenn ein result-Link oder eine Profilgeneration bestätigt veraltet ist, entferne sie durch den vorgesehenen Projekt- oder Profilablauf und sammle dann unreferenzierte Pfade. Behalte aktuelle, gestartete und eine funktionierende Rückkehrgeneration.
Vorsicht: Ohne Wurzeln können Ausgaben dauerhaft eingesammelt werden. Lösche nie beliebige /nix/store-Dateien oder das gesamte gcroots-Verzeichnis.
Wiederherstellung / Rücknahme: Stelle vor GC entfernte Links bei vorhandenen Zielen zurück. Nach GC braucht die Erholung einen Neubau oder einen verfügbaren geprüften Cache.
Hat dir dieser Hinweis geholfen?
Aufbewahrung und Kapazität bewusst planen
Wenn regelmäßige Bauten den Speicher übersteigen, plane endliche Generationserhaltung und passende GC oder erweitere das Dateisystem. Prüfe alle Benutzerwurzeln vor der Annahme ausreichender Systembereinigung.
Vorsicht: Eine entfernte Generation wird nicht durch Zurückwechseln wiederhergestellt. Store-Bereinigung sichert keine veränderlichen Anwendungsdaten.
Wiederherstellung / Rücknahme: Deaktiviere die neue Automatik und stelle Links bei vorhandenen Zielen zurück; baue eingesammelte Ausgaben nötigenfalls aus gesicherten Pins neu.
Hat dir dieser Hinweis geholfen?
Quellen und Prüfung
Diese Anleitung basiert auf Originalquellen von Projekten oder Distributionen und wurde am genannten Datum redaktionell geprüft. Das ist eine Quellenprüfung, kein Nachweis einer auf deiner Hardware reproduzierten Lösung. Log-Beispiele sind synthetische Testdaten. Versionsabhängige Details müssen zur installierten Ausgabe passen.
- Nix manual — GC roots and inspection suboperations (Projekt- oder Distributionsdokumentation)
- Nix manual — store roots and references (Projekt- oder Distributionsdokumentation)