如何将我的系统升级到nixos?

如何将我的系统升级到nixos?,nixos,Nixos,如何确保我在系统nixos安装中安装的所有软件包(即/etc/nixos/configuration.nix中列出的软件包,我使用sudo-nixos-rebuild-switch)都使用最新(不稳定)版本的nixos/nixpkgs?运行以下命令: sudo nix-channel --add https://nixos.org/channels/nixos-unstable sudo nix-channel --add https://nixos.org/channels/nixpkgs-u

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

运行以下命令:

sudo nix-channel --add https://nixos.org/channels/nixos-unstable
sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable
请注意,
sudo
是必需的:如果不使用
sudo
,它只会影响用户级软件包(即使用
nix env-i
安装的内容),而不会影响系统级软件包。

如中所述,如果以root用户身份发出以下命令:

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

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

您将删除16.09频道,并将其替换为nixos不稳定频道

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

nixos-rebuild switch --upgrade

这将使用您当前的配置和从切换到的频道更新的软件包重建您的系统。

这两个频道之间有什么区别?我认为一个用于核心Nixos操作系统,另一个用于安装的附加软件。Nixos通常是为Nixos设置的软件包,当您将nix作为包管理器安装在非NixOS发行版上时,nixpkgs是包集。它们由同一回购协议构建。这实际上对我不起作用。正如@sid kap所说,你真的需要
sudo
@haffla两次在我的回答中我提到你需要成为root。在重建之前更新你的频道,否则它不会有任何效果
sudo nix频道--update
选项的意思是执行
--update
,所以当完全使用我指示的命令时,它应该很好用。
nix-channel --add https://nixos.org/channels/nixos-unstable nixos
nixos-rebuild switch --upgrade