Come posso dire myproj.cabal di utilizzare pacchetti che ho installato in ~ / .cabal?
Domanda
Sto cercando di scrivere un file myproj.cabal
per il mio progetto, ma non sembra essere localizzare pacchetti ho installato in ~/.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
Che cosa sto facendo male qui?
Soluzione
rampion utente ha dato la risposta lunga.
La risposta breve è che se si utilizza 'cabala configure' e 'cabala costruire' e 'Cabal install' invece di 'runghc Setup.hs configure' tutto si risolverà più bello.
Altri suggerimenti
Ehi, è coperto nelle FAQ
Il valore predefinito per Setup.hs runghc configure è --global, ma il default per configurare cabala è --user. Globale pacchetti non possono dipendere utente pacchi. Quindi, se si sta utilizzando la cabala programma per installare i pacchetti, allora si possiamo anche noi per configurare altri pacchi. Di solito non c'è bisogno di utilizzare runghc Setup.hs a tutti.
Se è necessario utilizzare i Setup.hs runghc interfaccia (ad esempio in alcuni costruzione del sistema script) e lo si vuole far salire pacchetti dal db foglietto poi utilizzare il flag --user. Se tu sei costantemente dover utilizzare il runghc Interfaccia Setup.hs e facendo per utente installazioni è un dolore, allora è possibile impostare il valore predefinito per il programma cabala a essere installazioni globali nel cabala config di file (~ / .cabal / config).