作为一个非nix'er,我安装了最新版本的 https://github.com/reflex-frp/reflex-platform。我认为在这个 nix-shell 中工作是一种不错的体验。
现在我想知道在这个shell中安装和使用了哪些版本的Haskell软件包。经过一番谷歌搜索,我找到了以下形式的nix-env命令:
nix-env -f '<nixpkgs>' -qaPA haskellPackages|grep reflex-dom
这个命令给了我反射-dom的版本作为反射-dom-0.3。但是我从这里知道,在我的nix shell中,我使用了最新版本的反射-dom。所以我假设上面的命令只列出了可用的 Hackage 软件包。
什么是正确的 nix-env -q 命令来仅获取已安装的 Haskell 软件包及其版本?
(我玩了--installed选项,但是我再也没有回来(
您可以在进入外壳后尝试nix-store -q --references $out
。但是,这将在输出中混合 haskell 和非 haskell 依赖项。
这是一个应用了筛选器的完整示例:
$ nix-store -q --references $out
| while read p; do du -a $p | grep -q ghc && echo $p; done