2017-05-08 129 views
2

作为非nix'er我安装了最新版本的https://github.com/reflex-frp/reflex-platform。我认为在这个nix-shell中工作是一个不错的经历。Nix shell:如何列出已安装的Haskell软件包版本

现在我想知道在这个shell中安装和使用哪些版本的Haskell包。一些谷歌搜索后,我在下面的表格中发现一个尼克斯-ENV命令:

nix-env -f '<nixpkgs>' -qaPA haskellPackages|grep reflex-dom

这个命令让我反射-DOM的版本反射-DOM-0.3。但我从here知道,在我的nix shell中,我使用反射命令的最新版本0.4。所以我假设上面的命令只列出了可用的Hackage包。

什么是正确的nix-env -q命令只获取已安装的Haskell软件包及其版本?

(我打了--installed选项,但我从来没有得到的东西回来)

回答

1

你可以尝试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

+0

从你的命令'尼克斯店-q --references $ out'我得到的11行的结果。一个非常有趣的行是'/ nix/store/34h4mj588w6q0q18izpxrc4wc0wqbfl4-ghc-8.0.2-with-packages',另一个有趣的行是'/ nix/store/knbj6a7b3ra8zawy1jmlvahmr8x7rxnd-ghcjs-0.2.0-with-packages'。我的兴趣是了解_with-packages_背后的究竟是什么。这些包和它们的版本是什么? – Jogger

+0

尝试为ghc-with-packages行运行'nix-store -q --references'行 – danbst

+0

是的,命令'nix-store -q --references /nix/store/34h4mj588w6q0q18izpxrc4wc0wqbfl4-ghc-8.0.2-with-包'产生一个有趣的列表。谢谢! – Jogger

相关问题