Symptome und Geltungsbereich
- Der Bau nennt specified- und got-Hash einer Fixed-Output-Derivation.
- Quell-URL oder Revision wurde ohne passenden Hash geändert.
Betroffene Umgebung
Nix-Fixed-Output-Derivationen wie fetchurl, fetchzip und fetchFromGitHub; das Hash-Verfahren hängt vom Fetcher ab.
Erkennbare Meldungen (synthetische Beispiele)
error: hash mismatch in fixed-output derivation '/nix/store/00000000000000000000000000000000-source.drv':Erwarteter und gelieferter Inhalt unterscheiden sich; die Zeile erklärt nicht warum.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Upstream-Artefakt oder Revision kann geändert sein oder die URL liefert nun unerwarteten Inhalt.
- Ein Dateihash unterscheidet sich vom Hash entpackter rekursiver Inhalte; geänderte Fetcher-Regeln können einen anderen Hash verlangen.
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
Ersetze package.nix durch die lokale Paketquelle; sie wird ohne Download gelesen.
rg -n 'fetchurl|fetchzip|fetchFromGitHub|url|rev|hash|sha256' package.nixErgebnis einordnen: Vergleiche URL-/rev-Änderungen mit Hash und Fetcher-Typ. Ein Rohhash des Archivs ist nicht mit dem entpackten Inhaltshash austauschbar.
Prüfschritt 2
Ersetze den synthetischen Pfad durch die vorhandene .drv aus dem Fehler; zeigt Metadaten ohne Bau.
nix --extra-experimental-features nix-command derivation show /nix/store/00000000000000000000000000000000-source.drvErgebnis einordnen: Lies outputHash, outputHashMode und Quell-URL, sofern vorhanden. Metadaten bestätigen den Auftrag, nicht die Legitimität der geladenen Bytes.
Nächste Schritte nach Befund
Geprüftes Artefakt mit passendem Hash festlegen
Wenn die Quelländerung beabsichtigt ist, prüfe das Artefakt anhand der Upstream-Veröffentlichung oder eines unveränderlichen Commits. Berechne den Hash im dokumentierten Fetcher-Modus und ändere Verweis und Hash gemeinsam.
Vorsicht: Blindes Übernehmen von got akzeptiert den gelieferten Inhalt auch bei unerwartetem Ersatz. Bewahre frühere Artefaktidentität und Hash auf.
Wiederherstellung / Rücknahme: Stelle frühere URL/Revision und Hash gemeinsam zurück und baue die vorherige Paketdefinition.
Hat dir dieser Hinweis geholfen?
Unerwartet veränderte Quelle behandeln
Wenn das Artefakt ohne beabsichtigtes Update verändert wurde, sichere den Hinweis und nutze eine geprüfte unveränderliche Quelle oder warte auf die Korrektur. Bei geändertem Fetcher stelle zuerst dessen frühere Regeln wieder her.
Vorsicht: Cache-Löschen oder schwächere Hashs beweisen keine Echtheit. Auch eine Übergangslösung braucht einen erwarteten Hash.
Wiederherstellung / Rücknahme: Nimm vorübergehende Quell- oder Fetcherwahl nach geprüfter Korrektur zurück; bewahre den funktionierenden Pin auf.
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 — fixed-output derivation attributes (Projekt- oder Distributionsdokumentation)
- nix.dev — packaging existing software, hash mismatch (Projekt- oder Distributionsdokumentation)