如何将 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)"

相关内容