2016-02-05 112 views
1

我是Haskell的新手,有cabal问题。安装像`pip -r requirements.pip`这样的Haskell依赖关系

进行下列操作,

$ cabal sandbox init 
$ cabal install parsec alex happy haddock mtl 

其次

$ cabal configure --enable-tests 
Resolving dependencies... 
Configuring Scheme-0.1.0.0... 
cabal: At least the following dependencies are missing: 
alex >=2.3, cabal >=1.22, haddock >=2.15, happy >=1.18 

我使用

$ cabal --version       
cabal-install version 1.22.8.0 
using version 1.22.7.0 of the Cabal library 

我删除了沙箱,创造了一个新的

$ cabal sandbox remove 
$ cabal sandbox init 

,这样我可以使用:

$ cabal install --dependencies-only 
$ cabal configure --enable-tests 

但我遭受了同样的问题存在,这是双方产生了同样的错误,即

Resolving dependencies... 
Configuring Scheme-0.1.0.0... 
cabal: At least the following dependencies are missing: 
alex >=2.3, 
cabal >=1.22, 
doctest >=0.8, 
haddock >=2.15, 
happy >=1.18 

这是我.cabal文件,

name:      Scheme 
version:     0.1.0.0 
license:     MIT 
license-file:    LICENSE 
category:     Language 
build-type:     Simple 
cabal-version:    >=1.10 

executable Scheme 
    main-is:    Main.hs 
    ghc-options:   -Wall 
    hs-source-dirs:  src/ 
    default-language: Haskell2010 
    build-depends:  base >=4.6 && <4.9 
         , cabal >=1.22 
         , parsec >=3.1 && <3.2 
         , alex >=2.3 
         , happy >=1.18 
         , haddock >=2.15 
         , mtl >=2.2.1 

test-suite doctests 
    default-language: Haskell2010 
    type:    exitcode-stdio-1.0 
    ghc-options:  -threaded 
    main-is:   doctests.hs 
    build-depends:  base >=4.6 && <4.9 
         , alex >=2.3 
         , happy >=1.18 
         , haddock >=2.13 
         , doctest >= 0.8 

即使没有沙箱,我也会遇到同样的问题。

在Python中与pip这只是一个使用virtualenv和执行pip install -r requirements.pip如果有一个文件指定依赖关系的问题。我想通过一个类似的过程,但与cabal

我的方法有什么问题?

+2

一般'cabal configure'应该在'cabal install'之前完成。 – zakyggaps

+1

“即使没有沙箱,我也会遇到同样的问题。”我希望这一系列的步骤是正确的。在哪里安装'cabal install'来放置这些可执行文件?这与'--enable-tests'有关吗?试试'cabal sandbox init; cabal安装 - 依赖; cabal安装-v3' – user2407038

回答

2

所以你的问题是

cabal: At least the following dependencies are missing: 
alex >=2.3, cabal >=1.22, haddock >=2.15, happy >=1.18 

这里的缺失DEPS是库,但程序。您已经在其上运行了cabal install,但将它们安装到特殊的cabal bin文件夹中,通常在用户安装的~/.cabal/bin的unix下。 (并在mac和windows的不同位置)。

所以,你需要确保该bin目录在你的路径,你需要将这些可执行文件移动到/usr/bin或类似已在您的路径。