2

我知道如何安装一些nix软件包,nix-env但其中一些我不知道如何安装,

例如:

https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/pygit2/default.nix

如何安装该软件包?

光看文件怎么知道包的全名.nix?**

4

1 回答 1

1

如何安装该软件包?

nix-env -iA nixos.python3Packages.pygit2. 您可以替换python3Packages为您选择的 python 版本,例如python36Packages

仅查看 .nix 文件,我如何知道包的全名?

你就是不能。
原因是 .nix 文件的属性路径是由 .nix 文件的引用方式决定的<nixpkgs>/pkgs/all-packages/top-level.nix。在这种情况下,top-level.nix 文件使所有 python 包都可以通过pythonPackagesorpython3packages属性访问。包本身列在<nixpkgs>/pkgs/all-packages/python-packages.nix每个条目现在最终调用包的 nix 表达式文件的位置,就像您在上面链接到的那个。

这使得包的完整属性路径pkgs.python3Packages.pygit2。浏览 nixkpgs 属性集的一个很好的工具是nix repl "<nixpkgs/nixos>",它会让你进入一个带有 tab-completion 的 nix 解释器。当nix-env用于命令式软件安装时,您仍然需要在包的属性路径中pkgs替换为。nixos无论如何,我建议您研究声明式软件管理,因为您可以使用包的正常属性路径。

于 2020-01-13T14:37:50.720 回答