2010-06-23 10 views
28

He instalado el tal y tal paquete usando cabal, y puedo construir un programa que dependa de él usando cabal build. Pero cuando cargo el mismo programa en ghci, ghci se queja de que "No se pudo encontrar el módulo` such-and-such '".¿Cómo obtengo ghci para ver los paquetes que instalé de cabal?

Me sorprende que esto "no funcione". ¿Cómo le digo a ghci dónde encontrar los paquetes que he instalado con cabal?

Aquí está mi configuración: estoy usando GHC 6.10.4 en Mac OS X 10.6.3, cabal-install versión 0.6.2 utilizando la versión 1.6.0.3 de la biblioteca Cabal.

Respuesta

22

Usted necesita

ghci -package such-and-such 

Y volver a verificar que such-and-such es realmente visible para GHC, ejecute ghc-pkg list | grep such-and-such.

+1

Prefiero esta respuesta, ya que prefiero no saturar el espacio de nombres del paquete global con paquetes expuestos. Ronda de bonificación: * En * ghci, ¿cómo agrego dinámicamente un paquete? –

+0

': set -package haskell-src-meta' works. Creo que puedes configurar cualquier bandera 'ghci' /' ghc' con ': set'. Me gusta ': set -XTemplateHaskell'. –

14

ghc-pkg list en la línea de comandos le dirá cuáles son sus paquetes instalados. El paquete instalado puede estar oculto, en cuyo caso puede revelarlo con ghc-pkg expose {pkg-id}.

+0

Esto es lo que las salidas: bash3.2 $ lista GHC-PKG LRUCache /opt/local/lib/ghc-6.10.4/./package.conf: /Users/dominic/.ghc/x86_64 -darwin-6.10.4/package.conf: lrucache-1.0 ¿Cómo paso de ahí a donde el paquete * es *? Y luego uso 'ghci -i'? –

+0

¡Sí! 'ghc-pkg register such-and-such' es de hecho la magia requerida. ¡Gracias! –

+0

Es probable que desee cambiar sus prefs cabal para hacer registros globales. Cambia ~/.cabal/config para decir 'user-install: False'. – sclv

Cuestiones relacionadas