NixOS备忘单介绍了如何在unstable
中安装来自configuration.nix
的软件包。
首先说要添加不稳定的频道,如下所示:
$ sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable
$ sudo nix-channel --update
然后,在configuration.nix
中很容易使用此频道(因为它现在应该在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
自动执行此操作?
答案 0 :(得分:4)
我能够通过@EmmanuelRosa提出建议。
以下是我/etc/nixos/configuration.nix
的相关部分:
{ config, pkgs, ... }:
let
unstableTarball =
fetchTarball
https://github.com/NixOS/nixpkgs-channels/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
中使用。
以下是使用它从nixos-unstable安装htop
包的示例:
environment.systemPackages = with pkgs; [
...
unstable.htop
];