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
からこれを自動化する方法はありますか?
@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;
};
};
};
...
};
これにより、environment.systemPackages
で使用できるunstable
派生物が追加されます。
これを使用して、nixos-unstableからhtop
パッケージをインストールする例を次に示します。
environment.systemPackages = with pkgs; [
...
unstable.htop
];