Nix shell:如何列出已安装的Haskell软件包版本



作为一个非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

最新更新