如何将系统升级到nixos-unstable?

sid*_*kap 14 nixos

如何确保我在系统nixos安装上安装的所有软件包(即/etc/nixos/configuration.nix我安装的软件包中使用的软件包sudo nixos-rebuild switch)使用的是nixos/nixpkgs的最新(不稳定)版本?

Zim*_*i48 19

手册中有关升级的部分所述,如果以root身份发出以下命令:

nix-channel --list
Run Code Online (Sandbox Code Playgroud)

您很可能会看到类似以下的内容(例如,如果您正在关注16.09分支):

nixos https://nixos.org/channels/nixos-16.09
Run Code Online (Sandbox Code Playgroud)

通过发出以下命令(仍以root身份):

nix-channel --add https://nixos.org/channels/nixos-unstable nixos
Run Code Online (Sandbox Code Playgroud)

你将删除16.09频道并用nixos-unstable替换它.

现在这还不够.要真正更新系统,您需要最后一个命令:

nixos-rebuild switch --upgrade
Run Code Online (Sandbox Code Playgroud)

这将使用您切换到的频道中的当前配置和更新的包重建您的系统.

  • @haffla 在我的回答中两次提到您需要成为 root。 (4认同)
  • 我必须先运行`sudo nix-channel --update`,否则`sudo nixos-rebuild switch --upgrade`会给我一个错误:`错误:读取符号链接'/nix/var/nix/profiles/per- user/root/channels/nixos-unstable': 没有这样的文件或目录` (3认同)

sid*_*kap 5

运行以下命令:

sudo nix-channel --add https://nixos.org/channels/nixos-unstable
sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable
Run Code Online (Sandbox Code Playgroud)

请注意,sudo是必需的:如果您不使用sudo,它只会影响用户级软件包(即您使用 安装的东西nix-env -i),而不是系统级软件包。

  • 这两个渠道有什么区别? (2认同)
  • nixos 通常是 NixOS 的软件包集,nixpkgs 是当您在非 NixOS 发行版上将 nix 安装为软件包管理器时的软件包集。它们是从同一个存储库构建的。https://Hydra.nixos.org/jobset/nixos/release-19.03#tabs-configuration https://Hydra.nixos.org/jobset/nixpkgs/nixpkgs-19.03-darwin#tabs-configuration (2认同)