¿Cómo instalar la plataforma Haskell para Ubuntu 13.04?


37

¿Cómo instalar la plataforma Haskell para Ubuntu 13.04? Recibo el siguiente error cuando escribo sudo apt-get install haskell-platform:

E: Unable to locate package haskell-platform error 

También puede encontrar askubuntu.com/questions/288201/… útil
hdgarrood

2
Por @HokieTux "Hay un error en Launchpad para todo esto, pero no está recibiendo mucha atención. Visite esto y márquelo como algo que le afecta si aterrizó en esta página porque los paquetes Haskell de Ubuntu 13.04 están mangueados:" El enlace es: bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Rafael S. Calsaverini

Esto se solucionó en 13.10, por lo que la actualización es una solución para aquellos que pueden actualizar.
Calamar

Actualización de FUBAR 13.04 (ya que muchos de mis intentos anteriores de actualización han fallado).
karatedog

Esto no se soluciona en 13.10. No podrá hacerlo apt-get install ghc, lo que depende de GHC 4.8.1, mientras que el instalado y utilizado por muchas bibliotecas de Ubuntu es 4.8.2. Es el momento perfecto para migrar a NixOS.
polkovnikov.ph

Respuestas:


38

Raring está atrapado en un valle entre tener un GHC demasiado nuevo para Haskell Platform 2012.4.0.0 y demasiado viejo para 2013.2.0.0. Este valle puede ser puenteado con algo de dolor y cinta adhesiva.

Puede instalar la plataforma Haskell 2013.2.0.0 desde el origen si ya tiene instalado GHC. Es un poco un proceso, pero funciona.

Primero, instale GHC 7.6.2:

sudo apt-get install ghc

Ahora necesita GHC 7.6.3, ya que es un requisito previo para Haskell Platform 2013.2.0.0.

PRECAUCIÓN:

Puede pensar que la instalación desde los archivos de Linux desconocidos de GHC funcionará. No lo hará. El GHC en esos archivos está vinculado dinámicamente contra /usr/lib/libgmp.so.3 que no está disponible en Raring que tiene libgmp.so.10 . NO sienta la tentación de vincular esta biblioteca con el nombre y la ubicación de su versión anterior para falsificar el enlazador. Fui allí y es un camino hacia fallas muy confusas y es una muy mala práctica, así que reparé mis costumbres y construí GHC desde la fuente.

A continuación, debe obtener y compilar GHC 7.6.3 desde la fuente (GHC es un compilador autohospedado, por lo que necesita GHC para compilarlo):

wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-src.tar.bz2
tar xjvf ghc-7.6.3-src.tar.bz2
cd ghc-7.6.3
./configure
make
sudo make install

Compilar GHC me llevó bastante tiempo (varias horas,> semivida del isótopo de cesio Cs-134m), por lo que este es probablemente un muy buen momento para descansar o dormir. Pasa por tres etapas (0, 1 y 2) de construcción del compilador y luego la construcción de la siguiente etapa del compilador con el compilador que se construyó.

Para acelerar el proceso de compilación, puede usar

make -j 8

en el paso anterior para aprovechar la CPU multinúcleo.

Luego, obtenga y compile la plataforma Haskell desde el origen (usaré 2013.2.0.0 como ejemplo):

wget http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz
tar xzvf haskell-platform-2013.2.0.0.tar.gz
cd haskell-platform-2013.2.0.0
./configure
make
sudo make install

Compilar la plataforma Haskell me llevó bastante más de 30 minutos, así que este es otro buen momento para un descanso.

Ahora debería tener una plataforma Haskell 2013.2.0.0 funcionando con GHC 7.6.3 correctamente enlazado contra libgmp.so.10.


44
En ubuntu 13.04 en una instalación nueva, tuve que instalar el libncurses5-devpaquete para que la instalación funcione. =)
Felipe Almeida

1
También necesitaba:sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
Rafael S. Calsaverini

¿Puedo eliminar estas 2 carpetas después de la instalación de haskell?
Alan Coromano

Sí, puede eliminar las carpetas después de la instalación. Gracias por los comentarios y ediciones amigos. Buen material.
Alain O'Dea

3
Solo para no asustar a la gente: construir ghc-7.6.3en mi computadora de escritorio de cinco años tardó aproximadamente 2.5 horas, y en la computadora de escritorio i7 moderna, unos 20 minutos. La plataforma Haskell se está construyendo casi instantáneamente. Todos los resultados están con make -j8.
Michael Pankov

8

El repositorio Ubuntu 13.04 contiene GHC 7.6.2, desafortunadamente todavía no hay una plataforma Haskell para GHC 7.6.x. Por lo tanto, es mejor construir una versión de GHC (es decir, 7.4.x) y la plataforma Haskell desde la fuente por el momento.

Consulte esto para obtener más información: https://launchpad.net/ubuntu/raring/i386/haskell-platform


55
Uno se pregunta por qué, sabiendo que todavía no hay una versión de la Plataforma que incluya GHC 7.6, eligieron enviar GHC 7.6 y, por lo tanto, romper el desarrollo de Haskell para muchas personas.
Matthew Walton el

Debes discutirlo con los encargados del paquete
Thorbjørn Ravn Andersen,

6

Como detalla la excelente respuesta de Alain O'Dea arriba, este problema no se soluciona fácilmente y, mientras tanto, no hay una plataforma haskell disponible para Ubuntu 13.04.

Puede 'falsificarlo' instalando los paquetes en esta lista: http://packages.ubuntu.com/precise/haskell-platform

Aquí hay un comando para hacer esto por usted:

sudo apt-get install ghc alex cabal-install happy libghc-cgi-dev libghc-fgl-dev libghc-glut-dev libghc-haskell-src-dev libghc-html-dev libghc-http-dev libghc-hunit-dev libghc-mtl-dev libghc-network-dev libghc-opengl-dev libghc-parallel-dev libghc-parsec3-dev  libghc-quickcheck2-dev libghc-regex-base-dev libghc-regex-compat-dev  libghc-regex-posix-dev libghc-stm-dev libghc-syb-dev  libghc-text-dev  libghc-transformers-dev  libghc-xhtml-dev libghc-zlib-dev

Los dos elementos que faltan en esto son los paquetes haskell-platform-doc y haskell-platform-prof, por razones obvias.

Con suerte, los desarrolladores de Ubuntu solucionarán el problema de incompatibilidad pronto.

En esa nota:

Además: lamentablemente no tengo la reputación de dejar esto como un comentario en este sitio de StackExchange, pero ese es el lugar más apropiado.

Hay un error en Launchpad para todo esto, pero no recibe mucha atención. Visite esto y márquelo como algo que le afecta si aterrizó en esta página porque los paquetes Haskell de Ubuntu 13.04 están alojados:

https://bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678

Esperemos que un mod tome esta respuesta y la convierta en un comentario, donde pertenece. Lo siento, ¡todavía no tengo reputación en askubuntu!


1
Pondré el rastreador de errores de launchpad como un comentario principal en este hilo. Creo que es importante que las personas que leen esta página vayan y presionen para que esto se resuelva.
Rafael S. Calsaverini

1

He usado este script .

#!/bin/bash

# Install needed developer libraries
sudo apt-get install libgmp-dev zlib1g-dev libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa-dev libglw1-mesa

# Remove old tmp folder
sudo rm -r tmp
mkdir tmp

# Create symlink if necessary
libgmp=/usr/lib/libgmp.so.3
if [ ! \( -e "$libgmp" \) ]
then
    sudo ln -s /usr/lib/x86_64-linux-gnu/libgmp.so.10.0.5 $libgmp
fi

# Download the ghc
output_ghc_archive="tmp/ghc-7.6.3.tar.bz2"
output_ghc="tmp/ghc-7.6.3"
url=http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2
wget $url -O $output_ghc_archive

# Unpack and remove archive
tar -xjvf $output_ghc_archive -C "tmp/"
rm $output_ghc_archive

# Configure and install
cd $output_ghc
./configure
sudo make install

# Remove ghc installation files
cd ../..
sudo rm -r $output_ghc

# Download the haskell platform
output_hp_archive="tmp/haskell-platform-2013.2.0.0.tar.gz"
output_hp="tmp/haskell-platform-2013.2.0.0"
url2=http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz
wget $url2 -O $output_hp_archive


# Unpack and remove archive
tar -xzf $output_hp_archive -C "tmp/"
rm $output_hp_archive


# Configure and install
cd $output_hp
./configure
make
sudo make install

# Remove haskell platform installation files
cd ../..
sudo rm -r $output_hp

# Remove this tmp folder
sudo rm -r tmp

Espero eso ayude.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.