Wie kann ich die NixOS-Kanalversion auf die Version zurücksetzen, die in einem bestimmten Boot-Eintrag (Generation) verwendet wurde?

Wie kann ich die NixOS-Kanalversion auf die Version zurücksetzen, die in einem bestimmten Boot-Eintrag (Generation) verwendet wurde?

Ich verwende NixOS instabil und habe es nixos-rebuild boot --upgradeein paar Mal gemacht und festgestellt, dass eine App kaputt ist. Es handelt sich wahrscheinlich um eine vorübergehende Inkompatibilität/einen kaputten Wechsel in Abhängigkeiten, der irgendwann behoben wird.

Ich konnte die voll funktionsfähige Generation identifizieren und führe sie jetzt aus (boote sie):

  • die voll funktionsfähige Generation liegt ein paar Generationen zurück – nicht die vorherige.

Als nächstes möchte ich auf den Zustand vor diesen Upgrades eingehen:

  1. Ich möchte auf die voll funktionsfähige Generation zurückkommen:
    • Machen Sie es zur Standard-Boot-Generation.
    • oder eine neue (identische) erstellen, die über allen Generationen platziert wird,
  2. Ich möchte den Nix-Kanal auf die von dieser Generation verwendete Version zurücksetzen:
    • Änderungen vornehmen configuration.nixund mit anwenden können nixos-rebuild.

Antwort1

sudo nix-channel --rollback Nsetzt die Kanäle auf Generation zurück N. Sie könnenDasum zur aktuell laufenden Generierung zurückzukehren:sudo nix-channel --rollback "$(grep --files-with-matches --fixed-strings "$(cut --delimiter=. --fields=3 /run/current-system/nixos-version)" /nix/var/nix/profiles/per-user/root/channels-*-link/nixos/svn-revision | tail --lines=1 | cut --delimiter=- --fields=3)"

verwandte Informationen