Nix shell:如何列出已安装的 Haskell 软件包版本
Nix shell: How to list the installed Haskell package versions
作为一个非尼克斯人,我安装了最新版本的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。但我从 here 得知,在我的 nix shell 中,我使用了最新版本的 0.4 of reflex-dom。所以我假设上面的命令只是列出了可用的 Hackage 包。
什么是正确的 nix-env -q 命令来仅获取已安装的 Haskell 包及其版本?。
(我使用了 --installed 选项,但是我从来没有得到任何回报)
您可以在输入shell后尝试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
作为一个非尼克斯人,我安装了最新版本的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。但我从 here 得知,在我的 nix shell 中,我使用了最新版本的 0.4 of reflex-dom。所以我假设上面的命令只是列出了可用的 Hackage 包。
什么是正确的 nix-env -q 命令来仅获取已安装的 Haskell 包及其版本?。
(我使用了 --installed 选项,但是我从来没有得到任何回报)
您可以在输入shell后尝试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