我想把nixpkgs固定到一个相当新的版本上,比如说Haskell LTS-12.9之类的,我想在MacOS(达尔文)构建中使用nix-build。问题是大多数Haskell包都没有二进制缓存,而且构建需要很长时间才能完成(在MacOS上)。我如何才能找到“最佳”nixpkgs修订版,它足够新,可以包含我需要的软件版本,但足够旧,可以在Linux和MacOS上使用二进制缓存?
roejwanj1#
您可以在status.nixos.org上找到nixpkgs的构建版本您可能希望使用nixpkgs-18.09-darwin或nixpkgs-unstable的修订版。然后可以像这样获取nixpkgs
nixpkgs-18.09-darwin
nixpkgs-unstable
builtins.fetchGit { name = "nixpkgs"; url = "https://github.com/nixos/nixpkgs.git"; rev = "6ec64973bc3a48b0c54d11c782e8b88b550a8eab"; ref = "release-18.09"; })
当修订不在默认分支下时,ref属性是必需的,通常为master。Nix手册中的一个注解描述如下:
ref
master
**注:**最好始终指定修订版本所属的分支。如果未指定分支,则在默认分支更改时提取器可能会失败。此外,尝试从非默认分支提交并看到提取失败可能会令人困惑。如果指定了分支,则错误会明显得多。
我想这种行为是受Git协议中的一个变通方法的启发,如果我没记错的话,你只能指定refs来获取,而不能指定任意提交。
1条答案
按热度按时间roejwanj1#
您可以在status.nixos.org上找到nixpkgs的构建版本
您可能希望使用
nixpkgs-18.09-darwin
或nixpkgs-unstable
的修订版。然后可以像这样获取nixpkgs
当修订不在默认分支下时,
ref
属性是必需的,通常为master
。Nix手册中的一个注解描述如下:
**注:**最好始终指定修订版本所属的分支。如果未指定分支,则在默认分支更改时提取器可能会失败。此外,尝试从非默认分支提交并看到提取失败可能会令人困惑。如果指定了分支,则错误会明显得多。
我想这种行为是受Git协议中的一个变通方法的启发,如果我没记错的话,你只能指定refs来获取,而不能指定任意提交。