作为非 nix'er,我安装了最新版本的https://github.com/reflex-frp/reflex-platform。我认为在这个 nix-shell 中工作是一次很好的体验。
现在我想知道这个 shell 中安装和使用了哪些版本的 Haskell 软件包。经过一番谷歌搜索后,我发现了一个如下形式的nix-env命令:
nix-env -f '<nixpkgs>' -qaPA haskellPackages|grep reflex-dom
该命令为我提供了 reflex-dom 的版本为reflex-dom-0.3。但我从这里知道,在我的 nix shell 中,我使用的是最新版本的 reflex-dom 0.4 。所以我假设上面的命令只是列出了可用的 Hackage 包。
仅获取已安装的 Haskell 软件包及其版本的正确nix-env -q命令是什么?
(我使用了 --installed 选项,但我从未得到任何回报)
nix-store -q --references $out你可以在进入shell后尝试一下。然而,这将在输出中混合 haskell 和非 haskell 依赖项。
这是应用过滤器的完整示例:
$ nix-store -q --references $out \
| while read p; do du -a $p | grep -q ghc && echo $p; done