如何將 NixOS 頻道版本還原為特定啟動項目(產生)中使用的版本?

如何將 NixOS 頻道版本還原為特定啟動項目(產生)中使用的版本?

我運行的 NixOS 不穩定,我已經做了nixos-rebuild boot --upgrade幾次,發現某些應用程式已損壞。這可能是依賴項中的一些臨時不相容/破壞性更改,最終會得到解決。

我設法識別出,並且我正在運行(啟動),現在完全工作的一代:

  • 充分工作的一代是幾個世代之前的——而不是上一代。

現在,接下來我想進入這些升級之前的狀態:

  1. 我想回到完全工作的一代:
    • 使其成為預設啟動生成,
    • 或創建一個新的(相同的)放置在所有世代之上,
  2. 我想將 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)"

相關內容