我想知道,为什么有些软件包出现在旧版本而不是github repo中,当通过nix-env -qa查询它们时。 我了解到这是因为主分支尚未合并到unstable-channel。
如何从主分支手动安装派生,以获取最新版本?
答案 0 :(得分:6)
使用主分支可能有点风险,因为二进制代码可能不可用,您可以结束构建大量的软件包。
也就是说,您可以使用nixpkgs
标记指定nix-env
将使用哪个-f
。
因此,假设您想要从master构建hello
,您可以使用以下内容:
$ nix-env -f https://github.com/NixOS/nixpkgs/archive/master.tar.gz -iA hello
也可以使用-I nixpkgs=/path/to/nix/pkgs
在nix shell中尝试git分支包:
$ nix-shell -p hello -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz
答案 1 :(得分:4)
最灵活的方式是:
git clone https://github.com/nixos/nixpkgs
cd nixpkgs
nix-build -A hello
nix-env -i $(readlink result)