NixOS 备忘单描述了如何从 unstable
安装软件包。在 configuration.nix
.
它首先说添加不稳定的 channel ,如下所示:
$ sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable
$ sudo nix-channel --update
然后,很容易在
configuration.nix
中使用这个 channel (因为它现在应该在 NIX_PATH
上):nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
unstable = import <nixos-unstable> {
config = config.nixpkgs.config;
};
};
};
environment = {
systemPackages = with pkgs; [
unstable.google-chrome
];
};
我不想做手册
nix-channel --add
和 nix-channel --update
脚步。我希望能够从
configuration.nix
安装我的系统无需先运行nix-channel --add
和 nix-channel --update
脚步。有没有办法从
configuration.nix
自动执行此操作? ?
最佳答案
我能够通过@EmmanuelRosa 的建议来解决这个问题。
这是我的/etc/nixos/configuration.nix
的相关部分:
{ config, pkgs, ... }:
let
unstableTarball =
fetchTarball
https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz;
in
{
imports =
[ # Include the results of the hardware scan.
/etc/nixos/hardware-configuration.nix
];
nixpkgs.config = {
packageOverrides = pkgs: {
unstable = import unstableTarball {
config = config.nixpkgs.config;
};
};
};
...
};
这增加了一个 unstable
可用于 environment.systemPackages
的导数.这是一个使用它来安装
htop
的示例来自 nixos-unstable 的软件包: environment.systemPackages = with pkgs; [
...
unstable.htop
];
关于nix - 如何在 configuration.nix 中以声明方式添加 NixOS 不稳定 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831392/