config.nix

当初始化nixpkgs时,例如pkgs = import <nixpkgs> {}nixpkgs的初始化代码会读取~/.config/nixpkgs/config.nix作为nixpkgs.config参数。 如果你对nixpkgs的初始化感兴趣,可以去看看这部分的源代码<nixpkgs>/pkgs/top-level/impure.nix

config.nix文件(即nixpkgs.config)接受的参数可以参考nixpkgs的官方文档的 config Options Reference章节, 或是去看nixpkgs这部分的源码<nixpkgs>/pkgs/top-level/config.nix

下面是添加了注解的我的config.nix

{

禁用安装非本地的包,比如禁止x86_64-linux的包被安装到aarch64-linux上。

  allowUnsupportedSystem = false;
  allowUnfree = true;
  packageOverrides = pkgs: rec {
    # packages pinned by npins
    npinsed = import ./npins;

添加nix user repository (NUR)到nixpkgs里。

    nur = import npinsed.nur { pkgs = pkgsu; };

添加非稳定版的nixpkgs到nixpkgs里, 比如非稳定版的hello可以通过pkgs.pkgsu.hello来访问。

    pkgsu = import npinsed.pkgsu {};

添加flake-compat,用于在nix expression中使用flake的包

    flake-compat = import npinsed.flake-compat;
  };
}