¿Cómo puedo saber myproj.cabal utilizar paquetes que lo he instalado en ~ / .cabal?
Pregunta
Estoy tratando de escribir un archivo myproj.cabal
para mi proyecto, pero no parece ser la localización de los paquetes que he instalado en ~/.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
¿Qué estoy haciendo mal aquí?
Solución
rampion usuario ha dado la respuesta larga.
La respuesta corta es que si utiliza 'Cabal configure' y 'Cabal construir' y 'Cabal instalar' en lugar de 'runghc Setup.hs configure' todo saldrá mejor.
Otros consejos
Hey, es cubierta en el FAQ
El valor predeterminado para Setup.hs runghc Configurar se --global, pero por defecto para configurar Cabal es --user. Global paquetes no pueden depender de usuario paquetes. Así que si usted está utilizando la cábala programa para instalar paquetes, entonces También nos podemos configurar a otra paquetes. Generalmente, no hay necesidad de utilizar runghc Setup.hs en absoluto.
Si es necesario utilizar los Setup.hs runghc de interfaz (por ejemplo, en algunos sistema de construcción guiones) y desea que se recoja paquetes desde el PP paquete de usuario entonces usar la bandera --user. Si tu eres constantemente tener que utilizar el runghc Setup.hs interfaz y haciendo por usuario instalaciones es un dolor, entonces se puede establecer el valor por defecto para el programa cabal de se instala a nivel mundial en la cábala config archivo (~ / .cabal / config).