升级Nix 2.8+后,无需改造项目用nix build构建非Flake项目
解决Nix 2.8+下无需Flake构建default.nix项目的方法
方法1:显式指定构建文件
直接用--file(或短参数-f)告诉nix build要使用的default.nix,绕过Flake检测:
nix build -f ./default.nix
如果要构建文件里的特定属性(比如名为my-package的派生包):
nix build -f ./default.nix my-package
方法2:临时禁用Flake默认行为
通过环境变量临时覆盖配置,让nix build回到旧模式:
NIX_CONFIG="experimental-features = nix-command" nix build
这个命令会让当前会话的nix build自动查找目录下的default.nix,无需额外指定文件。
方法3:全局配置默认禁用Flake(可选)
如果希望所有nix build都默认使用旧行为,可修改Nix配置文件(如~/.config/nix/nix.conf或/etc/nix/nix.conf),添加:
experimental-features = nix-command
注意:此设置会全局关闭Flake默认模式,之后需要用Flake时,需手动加--flake参数或临时重新启用flakes特性。
内容的提问来源于stack exchange,提问作者Chris Stryczynski
相关产品推荐
相关产品推荐

