2011-11-17 25 views
5

Estoy tratando de configurar Haskell desde cero, en Ubuntu 11.04, sin usar el repositorio obsoleto de Debian o la plataforma Haskell.¿Cómo instalas paquetes/bibliotecas sin Cabal o Cabal-Install?

He instalado GHC-7.0.4 desde la fuente sin problemas, y ahora necesito instalar Cabal (que parece estar ya incluido en GHC en /usr/local/lib/ghc-7.0.4/Cabal-1.10.2.0) y Cabal Install.

Este último especifica varias dependencias (parsec y network), cada uno de los cuales tiene varias dependencias de su propia (mtl, text, etc).

¿Cuál es el comando para instalar estos paquetes, que hice desde un hackage en formato tar.gz? Descomprime, luego runhaskell no funciona. Veo Setup.lhs, pero no está claro para qué sirve o cómo usarlo.

La mayor parte de la documentación de Haskell que he encontrado asume que has instalado desde un repositorio o paquete Haskell y realmente no lo explica bien.

Gracias!

Respuesta

11

cabal-install tiene un script de shell que hace esto. Si tiene download it from hackage e instálelo, puede iniciar bootstrap.sh para instalar cabal-install. Luego puede usarlo para instalar otros paquetes.

+1

Gracias, era consciente de eso, pero desde RWH parecía que necesita parsec y la red instalada primero (http://book.realworldhaskell.org/read/installing-ghc-and-haskell-libraries.html), y desde el docs HTTP instalado antes de poder ejecutar bootstrap.sh. Veo que bootstrap.sh hace todo eso por ti. Eso es lo que obtengo por hacer esto a las 3am. – Kurtosis

5

Hay dos paquetes diferentes: Cabal y cabal-install. Cabal es una biblioteca, y cabal-install es un ejecutable llamado cabal.

Para instalar un paquete, cabal-install es una envoltura de conveniencia opcional alrededor de Cabal, pero Cabal es obligatorio.

De acuerdo con http://hackage.haskell.org/trac/ghc/wiki/Commentary/Libraries, Cabal es un paquete de 'arranque cero', por lo que cuando construye GHC, Cabal y sus dependencias se crean automáticamente para usted.

Puede utilizar ghc-pkg ejecutable para comprobar los paquetes que ya están instalados:

# ghc-pkg list 

Comprobar si Cabal está en la lista después de construir GHC. Si es así, puede instalar más paquetes sin Cabal a instalar el uso de esta documentación:

http://haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_package

sugiero que instale cabal-install primero, y luego instalar todo lo demás usando cabal-install ejecutable. Un commandine habitual para la instalación global es la siguiente:

# runhaskell Setup configure 
# runhaskell Setup build 
# sudo runhaskell Setup install 

desempaqueta un archivo comprimido del paquete y ejecutar los comandos en la carpeta con Setup.hs o Setup.lhs archivos. Tenga en cuenta que también se admite una instalación no root por usuario: Use runhaskell Setup configure --user

Cuando instale el ejecutable cabal y sus dependencias de esta manera, use cabal install {package-name} para instalar más paquetes.

Tenga en cuenta que la plataforma Haskell existe principalmente debido a la dificultad de instalar cabal-install usted mismo.

+0

Gracias, veo que estaba usando la configuración de Runhaskell incorrectamente.No disparando a todos los cilindros a las 3 a.m. ¡Muy apreciado! – Kurtosis