NixOS und Konfiguration

Eine Fixed-Output-Quelle hat einen anderen Hash

Die Fetcher-Ausgabe weicht vom erwarteten Hash ab. Prüfe feste Revision, Artefakt und Hash-Verfahren vor der Übernahme des neu gemeldeten Hashs.

Auf dieser Seite
  1. Symptome und Geltungsbereich
  2. Mögliche Ursachen
  3. Sicher prüfen
  4. Nächste Schritte nach Befund
  5. Quellen und Prüfung
  6. Verwandte Probleme

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.nix

Ergebnis 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.drv

Ergebnis 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?

Hinweis teilen#

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?

Hinweis teilen#

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.