我nix
在 Linux 系统上安装了,并添加了频道nixpkgs-unstable
。我现在可以安装软件包,例如gcc
:
% nix-env --install gcc
installing 'gcc-7.4.0'
...
created 78 symlinks in user environment
Run Code Online (Sandbox Code Playgroud)
如果我看着如目录~/.nix-defexpr/channels/nixpkgs/pkgs/development/compilers/gcc/
,我会发现,有多种版本,全部完成default.nix
。
如何使用ghc-env --query
或其他一些友好工具发现这些隐藏的软件包版本?
假设我想在gcc
我的用户环境中安装版本 8,我应该怎么做?我可以一次获得多个版本gcc
吗?
我一直在浏览 Nix 的大量文档,但到处都在说“使用 Nix,你可以一次安装任意数量的版本,它们永远不会发生冲突”,同时“你应该只安装一次一个版本,在您选择的频道中进行硬编码”。它有什么意义?
小智 6
您可以从这里查看软件包的所有过去版本以及如何安装它们https://lazamar.co.uk/nix-versions
Nix 仅在派生中保留包的最新版本。如果多个主要版本流行(如 python2 和 python3),将列出每个版本的最新版本。
不幸的是,nix 没有一种本地方式来搜索过去在以前的派生中可用的包的所有版本。
我编写了链接来解决这个问题的工具。
我建议使用属性路径,例如nix-env -iA nixpkgs.gcc8
在您的情况下,“nixpkgs”是因为您以这种方式命名您的频道(NixOS 用户通常会使用“nixos”名称)。属性路径是明确的,与正常名称相反。
如何发现这些?一种方法是例如添加-P
到nix-env -qa
查询中。我通常使用制表符补全nix repl
或浏览all-packages.nix
文件:-)(除非我知道或尝试猜测 attrpath)
旁注:
nix-env
),那么在创建配置文件的符号链接树时通常会发生冲突,除非您设置优先级。 归档时间: |
|
查看次数: |
1525 次 |
最近记录: |