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

Posted

技术标签:

【中文标题】如何将我的系统升级到 nixos-unstable?【英文标题】:How do I upgrade my system to nixos-unstable? 【发布时间】:2017-05-04 23:13:21 【问题描述】:

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

【问题讨论】:

【参考方案1】:

如the manual's section on upgrading 中所述,如果您以 root 身份发出以下命令:

nix-channel --list

您很可能会看到如下内容(例如,如果您关注的是 16.09 分支):

nixos https://nixos.org/channels/nixos-16.09

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

nix-channel --add https://nixos.org/channels/nixos-unstable nixos

您将删除 16.09 频道并将其替换为 nixos-unstable。

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

nixos-rebuild switch --upgrade

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

【讨论】:

这实际上对我不起作用。正如@sid-kap 所说,你真的需要sudo @haffla 在我的回答中我两次提到你需要成为 root。 在重建之前更新你的频道,否则它不会有任何效果sudo nix-channel --update --upgrade 选项用于执行--update,因此当使用我指定的命令时,它应该可以正常工作。【参考方案2】:

运行以下命令:

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安装的东西),而不是系统级包。

【讨论】:

这两个渠道有什么区别? 我认为一个用于核心 Nixos 操作系统,另一个用于您安装的附加软件。 nixos 通常是 NixOS 的软件包集,当您在非 NixOS 发行版上安装 nix 作为软件包管理器时,nixpkgs 是软件包集。它们是从同一个 repo 构建的。 hydra.nixos.org/jobset/nixos/release-19.03#tabs-configurationhydra.nixos.org/jobset/nixpkgs/… 这里有更多关于频道差异的信息:discourse.nixos.org/t/differences-between-nix-channels/13998

以上是关于如何将我的系统升级到 nixos-unstable?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的 laravel 5.0 项目直接升级到 5.4?

将我的 ubuntu 服务器升级到 10.04 后如何修复我的虚拟主机设置

如何将我的全局 vue-cli 安装升级到最新版本?

如何使用 rvm 将我的 ruby​​ 1.9.2-p0 升级到最新的补丁级别?

为啥我应该将我的应用程序升级到 iOS 5?

我已经将我的项目 PHP 版本升级到 8 并将 PHPUnit 升级到 9.x,但是不再生成覆盖率报告?