在 NixOS 中配置来自不稳定通道的程序和服务

Mat*_*iak 5 nixos

我知道我可以从不稳定的渠道安装一个软件包,如下所示:

{ config, pkgs, ... }:
let
  unstable-pkgs = import <unstable> {};
in
{
  environment.systemPackages = [ unstable-pkgs.chromium ]
}
Run Code Online (Sandbox Code Playgroud)

这表明 '在我的配置中import <unstable> {};代表 ' ,但是如果我想对 ' or 'pkgs做同样的事情怎么办?programsservices

小智 0

我假设您希望对大部分系统使用稳定通道,但从不稳定通道获取一些特定的程序或服务。您可以通过从 stable 导入您需要的特定模块来完成此操作。

但是,如果该模块也存在于稳定通道中,则这两个模块将发生冲突。您可以使用它disabledModules来抑制稳定通道中的现有模块。

例如,这是我plymouth从不稳定通道加载模块的方法:

{ nixpkgs-unstable, ... }:
{
  imports = [
    "${nixpkgs-unstable}/nixos/modules/system/boot/plymouth.nix"
  ];
  disabledModules = [
    "system/boot/plymouth.nix"
  ];
}
Run Code Online (Sandbox Code Playgroud)

这是在使用 Flakes 的系统上,其中nixpkgs-unstable被定义为 Flake 输入,并且该输入作为调用构建系统配置specialArgs时的一部分进行传递。nixosSystem但是,importsdisabledModules不是 Flakes 特定的,因此只要您可以提供从不稳定通道到模块的路径,您就应该能够在非 Flakes 系统上执行相同的操作。