Come installare la piattaforma Haskell per Ubuntu 13.04?


37

Come installare la piattaforma Haskell per Ubuntu 13.04? Ottengo il seguente errore durante la digitazione sudo apt-get install haskell-platform:

E: Unable to locate package haskell-platform error 

si potrebbe anche trovare askubuntu.com/questions/288201/... utile
hdgarrood

2
Di @HokieTux "Esiste un bug su Launchpad per tutto questo, ma non sta ottenendo molta attenzione. Per favore, visita questo e contrassegnalo come se ti atterrasse su questa pagina perché i pacchetti Haskell di Ubuntu 13.04 sono hosing:" Il link è: bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Rafael S. Calsaverini,

Questo problema è stato risolto in 13.10, quindi l'aggiornamento è una soluzione per coloro che possono effettuare l'aggiornamento.
Calamari

Aggiornamento di FUBAR 13.04 (poiché molti dei miei precedenti tentativi di aggiornamento non sono riusciti).
Karatedog,

Questo non è stato risolto in 13.10. Non sarà possibile apt-get install ghc, che dipende da GHC 4.8.1, mentre quello installato e utilizzato da molte librerie di Ubuntu è 4.8.2. È dannatamente il momento perfetto per migrare su NixOS.
polkovnikov.ph,

Risposte:


38

Raring è preso in una valle tra avere un GHC troppo nuovo per la piattaforma Haskell 2012.4.0.0 e troppo vecchio per il 2013.2.0.0. Questa valle può essere colmata con del dolore e del nastro adesivo.

È possibile installare la piattaforma Haskell 2013.2.0.0 dall'origine se GHC è già installato. È un po 'un processo, ma funziona.

Innanzitutto, installa GHC 7.6.2:

sudo apt-get install ghc

Ora è necessario GHC 7.6.3 poiché è un pre-req per la piattaforma Haskell 2013.2.0.0.

ATTENZIONE:

Potresti pensare che l'installazione dall'archivio sconosciuto di Linux di GHC funzionerà. Non lo farà. Il GHC in quegli archivi è collegato dinamicamente a /usr/lib/libgmp.so.3 che non è disponibile su Raring che ha libgmp.so.10 . NON essere tentato di collegare simbolicamente questa libreria al nome e al percorso della versione precedente per falsificare il linker. Sono andato lì e si tratta di un percorso a guasti molto confusa ed è una molto cattiva pratica così ho riparato le mie vie e costruito GHC dai sorgenti.

Successivamente, è necessario ottenere e creare GHC 7.6.3 dalla fonte (GHC è un compilatore self-hosted quindi ha bisogno di GHC per costruirlo):

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

La compilazione di GHC ha richiesto parecchio tempo (diverse ore,> emivita di isotopo di cesio Cs-134m) per me, quindi questo è probabilmente un ottimo momento per una pausa o un sonno. Passa attraverso tre fasi (0, 1 e 2) per la creazione del compilatore e quindi la fase successiva del compilatore con il compilatore che è stato creato.

Per accelerare il processo di compilazione, è possibile utilizzare

make -j 8

nel passaggio precedente per sfruttare la CPU multi-core.

Quindi, ottieni e costruisci la piattaforma Haskell dal sorgente (userò 2013.2.0.0 come esempio):

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

La compilazione della piattaforma Haskell ha richiesto circa 30 minuti, quindi questo è un altro buon momento per una pausa.

Ora dovresti avere una piattaforma Haskell 2013.2.0.0 funzionante con GHC 7.6.3 correttamente collegata a libgmp.so.10.


4
Su Ubuntu 13.04 su una nuova installazione, ho dovuto installare il libncurses5-devpacchetto affinché l'installazione funzionasse. =)
Felipe Almeida,

1
Avevo anche bisogno di:sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
Rafael S. Calsaverini il

posso eliminare queste 2 cartelle dopo l'installazione di haskell?
Alan Coromano,

Sì, è possibile eliminare le cartelle dopo l'installazione. Grazie per i commenti e le modifiche gente. Roba buona.
Alain O'Dea,

3
Solo per non spaventare la gente: costruire ghc-7.6.3sul mio desktop di cinque anni ha impiegato circa 2,5 ore e sul moderno desktop i7 - circa 20 minuti. La piattaforma Haskell si sta costruendo quasi istantaneamente. Tutti i risultati sono con make -j8.
Michael Pankov,

8

Ubuntu 13.04 repo contiene GHC 7.6.2, sfortunatamente non esiste ancora una piattaforma Haskell per GHC 7.6.x. Quindi, per ora, è meglio creare una versione di GHC (ad es. 7.4.x) e la piattaforma Haskell dalla fonte.

Vedi questo per maggiori informazioni: https://launchpad.net/ubuntu/raring/i386/haskell-platform


5
Uno si chiede perché, sapendo che non esiste ancora una versione della piattaforma che includa GHC 7.6, hanno scelto di distribuire GHC 7.6 e quindi interrompere lo sviluppo di Haskell per molte persone.
Matthew Walton,

Devi discuterne con i manutentori del pacchetto
Thorbjørn Ravn Andersen,

6

Come l'eccellente risposta di Alain O'Dea sopra i dettagli, questo problema non si risolve facilmente e nel frattempo non esiste una piattaforma haskell disponibile per Ubuntu 13.04.

È possibile "falsificarlo" installando i pacchetti in questo elenco: http://packages.ubuntu.com/precise/haskell-platform

Ecco un comando per fare questo per te:

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

I due elementi mancanti da questo sono i pacchetti haskell-platform-doc e haskell-platform-prof, per ovvie ragioni.

Speriamo che gli sviluppatori Ubuntu risolvano presto il problema di incompatibilità.

Su quella nota:

Inoltre: purtroppo non ho la reputazione di lasciarlo come commento su questo sito StackExchange, ma quello è il posto più appropriato.

C'è un bug su Launchpad per tutto questo, ma non sta ottenendo molta attenzione. Per favore visita questo e contrassegnalo come se ti atterrasse su questa pagina perché i pacchetti Haskell di Ubuntu 13.04 sono hosing:

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

Speriamo che una mod prenda questa risposta e la trasformi in un commento, a cui appartiene. Scusa, non ho ancora la reputazione su askubuntu!


1
Metterò il tracker dei bug del launchpad come commento principale in questa discussione. Penso che sia importante che le persone che leggono questa pagina vadano lì e facciano pressione per risolverlo.
Rafael S. Calsaverini,

1

Ho usato questo 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

Spero che sia d'aiuto.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.