
我運行的 NixOS 不穩定,我已經做了nixos-rebuild boot --upgrade
幾次,發現某些應用程式已損壞。這可能是依賴項中的一些臨時不相容/破壞性更改,最終會得到解決。
我設法識別出,並且我正在運行(啟動),現在完全工作的一代:
- 充分工作的一代是幾個世代之前的——而不是上一代。
現在,接下來我想進入這些升級之前的狀態:
- 我想回到完全工作的一代:
- 使其成為預設啟動生成,
- 或創建一個新的(相同的)放置在所有世代之上,
- 我想將 nix 通道恢復到這一代使用的版本:
- 能夠進行更改
configuration.nix
並應用它們nixos-rebuild
。
- 能夠進行更改
答案1
sudo nix-channel --rollback N
將通道恢復為 Generation N
。您可以使用這恢復到目前運行的一代: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)"