2016-02-05 110 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或類似已在您的路徑。