NixOS und Konfiguration

Reine Auswertung lehnt eine lokale Hostdatei ab

Eine Flake liest außerhalb deklarierter Eingänge und die reine Auswertung lehnt dies ab. Unterscheide Bauquellen von Pfaden für die Laufzeit.

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

  • Die Auswertung meldet verweigerten Zugriff im reinen Auswertungsmodus.
  • Die Konfiguration liest beim Auswerten eine persönliche Home-Datei oder /var-Daten.

Betroffene Umgebung

Reine Flake-Auswertung; Pfadwerte, readFile und lokale Daten sind nicht dasselbe wie Pfadstrings für die Laufzeit.

Erkennbare Meldungen (synthetische Beispiele)
error: access to absolute path '/home/example/wallpaper.png' is forbidden in pure evaluation mode (use '--impure' to override)

Prüfe den Zweck des Ausdrucks vor einer Unreinheitsfreigabe.

Mögliche Ursachen

Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.

  • Eine Quelle außerhalb des Flake-Baums kann über absoluten Pfad oder builtins.readFile gelesen werden.
  • Ein Laufzeitpfad kann versehentlich als Nix-Pfadwert statt String geschrieben sein und dadurch beim Auswerten gelesen werden.

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

Nutze den tatsächlichen Konfigurations-Checkout; rg liest Treffer ohne Nix-Auswertung.

rg -n 'builtins\.readFile|builtins\.getEnv|/home/|/var/' /etc/nixos

Ergebnis einordnen: Vergleiche den verweigerten Pfad mit Ausdruck und Optionstyp. Ein Laufzeitstring kann gültig sein, wo eine Quellkopie nicht passt.

Prüfschritt 2

Führe dies im Flake-Checkout aus; prüfe die Zugehörigkeit zu einem expliziten Eingang.

rg -n 'inputs|url|path:|readFile' flake.nix

Ergebnis einordnen: Eine Datei außerhalb deklarierter Eingänge wird nicht dadurch reproduzierbar, dass sie auf diesem Host existiert.

Nächste Schritte nach Befund

Nicht geheime Quelldaten als Eingang deklarieren

Wenn die Datei eine Bauquelle ist, lege sie in den erfassten Flake-Baum oder einen expliziten festgelegten Eingang. Referenziere sie relativ dazu für dieselbe Auswertung auf anderen Rechnern.

Vorsicht: Quellen landen normalerweise im allgemein lesbaren Nix-Store. Halte Geheimnisse heraus und erhalte die Quellfilterung.

Wiederherstellung / Rücknahme: Stelle Quellstruktur, Verweise und Lock zurück; behalte verschobene Originaldateien bis zur Prüfung.

Hat dir dieser Hinweis geholfen?

Hinweis teilen#

Laufzeitressourcen als Laufzeitpfade halten

Wenn die Option einen Laufzeitdateinamen wie EnvironmentFile erwartet, verwende die dokumentierte Stringform und stelle die Datei außerhalb des Stores bereit. Begrenze bewusstes --impure für lokale Versuche auf diese Auswertung.

Vorsicht: Ein String hilft nur bei tatsächlichem Laufzeitzugriff der Option. --impure hält Geheimnisse nicht automatisch aus Bauausgaben heraus.

Wiederherstellung / Rücknahme: Stelle Ausdruck und Laufzeitdateikonfiguration zurück; ersetze ein in den Store gelangtes Geheimnis vor weiterer Verwendung.

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.