如何告诉myproj.cabal使用我在〜/ .cabal中安装的软件包?

时间:2011-01-15 13:39:39

标签: haskell cabal

我正在尝试为我的项目编写myproj.cabal文件,但它似乎不是找到我在~/.cabal中安装的软件包

% cabal list HTF
* HTF
    Synopsis: The Haskell Test Framework
    Latest version available: 0.6.0.1
    Latest version installed: 0.6.0.1
    License:  LGPL
% ghc-pkg list HTF
/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.3/package.conf.d
/Users/rampion/.ghc/i386-darwin-6.12.3/package.conf.d
   HTF-0.6.0.1
% cat Setup.hs
import Distribution.Simple
main = defaultMain
% cat Clue.cabal
... 
executable clue-tests
  ghc-options: -Wall -F -pgmF htfpp
  build-depends: QuickCheck, HTF
  main-is: Tests.hs
  hs-source-dirs: tests src
% runhaskell Setup.hs configure
Configuring Clue-0.1.0...
Setup.hs: At least the following dependencies are missing:
HTF -any

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

用户猖獗已经给出了很长的答案。

简短的回答是,如果你使用'cabal configure'和'cabal build'和'cabal install'而不是'runghc Setup.hs configure',那么一切都会更好。

答案 1 :(得分:1)

嘿,这是covered in the FAQ

  

runghc Setup.hs的默认值   configure是--global,但是默认值   对于cabal配置是--user。全球   包不能依赖于用户   包。所以,如果你正在使用阴谋集团   程序安装包,然后你   也可以我们配置其他   包。通常没有必要   完全使用runghc Setup.hs.

     

如果您需要使用runghc Setup.hs   接口(例如在某些系统构建中)   脚本),你想要它拿起来   然后来自用户包db的包   使用--user标志。如果你是   经常不得不使用梯级   Setup.hs接口和每个用户做   安装是一个痛苦,然后你可以设置   cabal程序的默认值   在cabal配置中进行全局安装   文件(〜/ .cabal / config)。