GHC non riesce a trovare i miei cabala pacchetti installati
Domanda
ho installato GHC 6.12.3, e quindi la piattaforma Haskell. Sto cercando di compilare un programma di test:
$ ghc test.hs
test.hs:3:0:
Failed to load interface for `Bindings':
Use -v to see a list of the files searched for.
così, naturalmente, io
cabal install Bindings
Il che funziona bene, e pone il pacchetto in ~ / .cabal / lib / bindings-0.1.2 è, che quando vado a compilare di nuovo con GHC, ancora non trova il pacchetto che ho installato Il problema con cabala. compilazione in modalità dettagliata dà:
ghc -v test.hs
Using binary package database: /home/ludflu/ghc/lib/ghc-6.12.3/package.conf.d/package.cache
Using binary package database: /home/ludflu/.ghc/x86_64-linux 6.12.3/package.conf.d/package.cache
Come suggerito da un altro utente StackOverflow, ho provato:
ghc-pkg describe rts > rts.pkg
vi rts.pkg # add the /home/ludflu/.cabal/lib to `library-dirs` field
ghc-pkg update rts.pkg
Ma senza alcun risultato. Come aggiungo il .cabal alla lista delle directory del pacchetto per la ricerca? Grazie!
Soluzione
È possibile controllare quali pacchetti sono installati con ghc-pkg list
. Può essere che è necessario specificare i pacchetti da ghc
con -package <pkgname>
o io creda aggiungendo --make
a attiverà un inseguire delle dipendenze, tra cui pacchetti.
Modifica il pacchetto binding è davvero obsoleto, vedere la pagina hackage . Questo non è un problema di gestione dei pacchetti, l'unico modulo disponibile è Bindings.Deprecated
, che si è perfettamente in grado di carico, anche se è un modulo vuoto. Credo che le parti pertinenti sono state scoppiata in bindings-<module>
, quindi se si desidera che la funzionalità di binding si dovrebbe guardare a quei pacchetti.
Altri suggerimenti
http://www.haskell.org/haskellwiki/Cabal-install
Una cosa da essere particolarmente consapevoli, è che i pacchetti siano installati localmente per default da cabala, mentre i comandi
runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install
installazione a livello globale per impostazione predefinita. Se si installa un pacchetto a livello globale, i pacchetti locali vengono ignorati. L'impostazione predefinita per la cabala-installazione può essere modificato modificando il file di configurazione.
mi è stato sempre lo stesso errore con il comando runhaskell
. Ho usato la cabala nella directory che ha avuto il file .cabal ed è stato in grado di risolvere l'errore.