2017-05-08 107 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

相關問題