我非常喜欢nixos / nix的确定性,但是我无法理解为我的用途定制包的最佳方法。我使用nixpkgs.config.packageOverrides
属性取得了有限的成功,但是很痛苦,我发现它失败的次数多于它的工作原理(例如我花了几周时间试图覆盖我在稳定和不稳定的频道中拾取的虚拟盒版本但它从未正常工作过。)
我的下一次尝试是克隆nixpkgs存储库并尝试直接修改表达式。如果我将克隆的路径添加到$NIX_PATH
的开头,我认为这会有效。但是,重建似乎并没有改变我的变化。我还尝试了https://nixos.org/wiki/Create_and_debug_nix_packages中描述的nixos-rebuild -I $NIXPKGS switch
变体,但它也没有接受我的更改。
这种克隆方法是否可行?若然,我做错了什么?
答案 0 :(得分:6)
VirtualBox很特别,因为它不是一个简单的包,但也需要NixOS集成(setuid)。因此,最好克隆nixpkgs进行修改。
nixos-rebuild switch -I /mypath
应该可以使用,其中nixpkgs位于/mypath
内。
答案 1 :(得分:0)
我发现nix搜索路径的最佳解释是this blog post。希望它有所帮助。