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;
};
}