相当于Cabal的“pip install -U -r requirements.txt”?

时间:2015-01-22 17:12:11

标签: haskell cabal

在Python中,有一个pip install -U -r requirements.txt咒语可以安装文件requirements.txt中列出的所有软件包,通常是在virtualenv中。

Cabal / Haskell有类似的东西吗?毕竟,cabal似乎有cabal list --installed,这使得理论上可以为cabal沙箱做类似的事情。

1 个答案:

答案 0 :(得分:2)

要安装your-package.cabal中指定的所有依赖项,您可以运行

cabal install --only-dependencies

如果您已创建沙箱,则会在那里安装依赖项。

提示:我通常也会运行cabal install --only-dependencies --enable-tests来安装测试依赖项。


cabal list --installed列出了沙盒中的包。

  

如果当前目录中有沙箱,则配置:ignore-sandbox is   错误,请使用沙箱包数据库。否则,请使用包数据库   使用--package-db指定。如果未指定,请使用用户包数据库。

E.g。

~/range-set-list % cabal list --installed|grep -c lens
0
~ % cabal list --installed|grep -c lens
2
~ % cabal list --installed|grep lens   
* lens
    Homepage: http://github.com/ekmett/lens/

或者您可以采取较低级别的方法:

~/range-set-list % ll .cabal-sandbox/lib/x86_64-osx-ghc-7.8.3
total 0
drwxr-xr-x@  6 ogre  staff  204 Dec 23 16:50 ansi-terminal-0.6.2.1
drwxr-xr-x@  6 ogre  staff  204 Dec 23 16:50 ansi-wl-pprint-0.6.7.1
drwxr-xr-x@  6 ogre  staff  204 Dec 23 16:50 mtl-2.2.1
drwxr-xr-x@  6 ogre  staff  204 Dec 23 16:51 optparse-applicative-0.11.0.1
drwxr-xr-x@  6 ogre  staff  204 Dec 23 16:51 parsec-3.1.7
...

看起来并非所有内容都安装在沙箱中。还有什么东西来自全球数据库吗?