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

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

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

{ config, pkgs, ... }:
let
  unstable-pkgs = import <unstable> {};
in
{
  environment.systemPackages = [ unstable-pkgs.chromium ]
}

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

答案1

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

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

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

{ nixpkgs-unstable, ... }:
{
  imports = [
    "${nixpkgs-unstable}/nixos/modules/system/boot/plymouth.nix"
  ];
  disabledModules = [
    "system/boot/plymouth.nix"
  ];
}

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

相关内容