我nix
在Linux系统上进行了安装,并且添加了channel nixpkgs-unstable
。我现在可以安装以下软件包gcc
:
% nix-env --install gcc
installing 'gcc-7.4.0'
...
created 78 symlinks in user environment
如果查看诸如之类的目录~/.nix-defexpr/channels/nixpkgs/pkgs/development/compilers/gcc/
,我会发现存在各种版本,全部带有default.nix
。
如何使用ghc-env --query
或其他友好工具发现这些隐藏的软件包版本?
假设我希望将gcc
版本8安装到我的用户环境中,该如何处理?我可以一次获得多个版本gcc
吗?
我一直在浏览有关Nix的大量文档,但是到处他们都说“用Nix,您可以一次安装任何数量的版本,它们永远不会冲突”,而同时“您应该只安装”一次有一个版本,该版本已硬编码在您选择的频道中。” 这有什么意义?
我建议使用属性路径,例如,nix-env -iA nixpkgs.gcc8
在您使用“ nixpkgs”的情况下,是因为您以这种方式命名了您的频道(NixOS用户通常会使用“ nixos”名称)。与普通名称相反,属性路径是明确的。
如何发现这些?一种方法是例如添加-P
到nix-env -qa
查询。我通常在其中使用制表符补全nix repl
或浏览all-packages.nix
文件:-)(除非我知道或尝试猜测attrpath)
旁注:
nix-env
),那么除非创建优先级,否则通常在创建配置文件的符号链接树时会发生冲突。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句