nix:直接从master分支安装派生

Ant*_*ald 4 nixos nix

我想知道,为什么有些软件包出现在旧版本而不是github repo中,当通过nix-env -qa查询它们时.我了解到这是因为主分支尚未合并到unstable-channel.

如何从主分支手动安装派生,以获得最新版本?

Dav*_*son 8

最灵活的方式是:

git clone https://github.com/nixos/nixpkgs
cd nixpkgs
nix-build -A hello
nix-env -i $(readlink result)
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 6

寻找主分支可能有点风险,因为二进制代码可能不可用,你可以结束构建很多包.
这就是说,你可以指定哪些nixpkgs将被用来nix-env-f标志.

所以,假设你想要hello从master 构建,你可以使用以下代码:

$ nix-env -f https://github.com/NixOS/nixpkgs/archive/master.tar.gz -iA hello
Run Code Online (Sandbox Code Playgroud)

也可以使用-I nixpkgs=/path/to/nix/pkgs以下命令在nix shell中尝试git分支包:

$ nix-shell -p hello -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz
Run Code Online (Sandbox Code Playgroud)