Wie installiere ich Haskell Platform für Ubuntu 13.04?


37

Wie installiere ich Haskell Platform für Ubuntu 13.04? Ich erhalte die folgende Fehlermeldung, wenn ich tippe sudo apt-get install haskell-platform:

E: Unable to locate package haskell-platform error 

Vielleicht findest du auch askubuntu.com/questions/288201/… nützlich
hdgarrood

2
Von @HokieTux "Es gibt einen Fehler auf dem Launchpad, der jedoch nicht viel Beachtung findet. Bitte besuchen Sie diesen Bereich und markieren Sie ihn als Sie betreffend, wenn Sie auf dieser Seite gelandet sind, weil die Haskell-Pakete von Ubuntu 13.04 abgespritzt sind:" Der Link lautet: bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Rafael S. Calsaverini

Dies wurde in 13.10 behoben, sodass ein Upgrade eine Lösung für diejenigen ist, die ein Upgrade durchführen können.
Squidly 30.10.13

Upgrade von FUBARs 13.04 (da viele meiner vorherigen Upgrade-Versuche fehlgeschlagen sind).
Karatedog

Dies ist in 13.10 nicht behoben. Sie werden nicht in der Lage sein apt-get install ghc, was von GHC 4.8.1 abhängt, während die von vielen Ubuntu-Bibliotheken installierte und verwendete Version 4.8.2 ist. Es ist verdammt perfekt, um auf NixOS zu migrieren.
polkovnikov.ph

Antworten:


38

Raring liegt in einem Tal zwischen einem für Haskell Platform 2012.4.0.0 zu neuen und einem für 2013.2.0.0 zu alten GHC. Dieses Tal kann mit etwas Schmerz und Klebeband überbrückt werden.

Sie können Haskell Platform 2013.2.0.0 von der Quelle installieren, wenn Sie GHC bereits installiert haben. Es ist ein bisschen ein Prozess, aber es funktioniert.

Installieren Sie zuerst GHC 7.6.2:

sudo apt-get install ghc

Jetzt benötigen Sie GHC 7.6.3, da dies eine Voraussetzung für Haskell Platform 2013.2.0.0 ist.

VORSICHT:

Sie könnten denken, dass die Installation von den GHC-Archiven mit unbekanntem Linux funktioniert. Das wird es nicht. Die GHC in diesen Archiven dynamisch gegen verknüpft /usr/lib/libgmp.so.3 die auf Raring nicht verfügbar ist , das hat libgmp.so.10 . Versuchen Sie NICHT, diese Bibliothek mit dem Namen und dem Speicherort der früheren Version zu verknüpfen, um den Linker zu fälschen. Ich bin dorthin gegangen und es ist ein Weg zu sehr verwirrenden Fehlern und eine sehr schlechte Praxis, also habe ich meine Methoden verbessert und GHC aus dem Quellcode gebaut.

Als Nächstes müssen Sie GHC 7.6.3 aus dem Quellcode abrufen und erstellen (GHC ist ein selbst gehosteter Compiler, für dessen Erstellung GHC erforderlich ist):

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

Das Kompilieren von GHC hat eine Weile gedauert (mehrere Stunden,> Halbwertszeit von Cäsiumisotop Cs-134m), daher ist dies wahrscheinlich eine sehr gute Zeit für eine Pause oder einen Schlaf. Der Compiler wird in drei Schritten (0, 1 und 2) erstellt. Anschließend wird mit dem erstellten Compiler der nächste Schritt des Compilers erstellt.

Um den Kompilierungsprozess zu beschleunigen, können Sie verwenden

make -j 8

im obigen Schritt, um Multi-Core-CPU zu nutzen.

Holen Sie sich dann die Haskell-Plattform und erstellen Sie sie aus dem Quellcode (ich verwende 2013.2.0.0 als Beispiel):

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

Das Kompilieren der Haskell-Plattform dauerte für mich ziemlich> 30 Minuten, daher ist dies ein weiterer guter Zeitpunkt für eine Pause.

Sie sollten jetzt eine funktionierende Haskell Platform 2013.2.0.0 mit GHC 7.6.3 haben, die korrekt mit libgmp.so.10 verknüpft ist.


4
Unter Ubuntu 13.04 musste ich bei einer Neuinstallation das libncurses5-devPaket installieren , damit die Installation funktioniert. =)
Felipe Almeida

1
Ich brauchte auch:sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
Rafael S. Calsaverini

kann ich diese 2 ordner nach der haskell installation löschen?
Alan Coromano

Ja, Sie können die Ordner nach der Installation löschen. Vielen Dank für die Kommentare und Änderungen Leute. Gutes Zeug.
Alain O'Dea

3
Nur um die Leute nicht abzuschrecken: Das Bauen ghc-7.6.3auf meinem fünf Jahre alten Desktop dauerte ungefähr 2,5 Stunden und auf dem modernen i7-Desktop ungefähr 20 Minuten. Die Haskell-Plattform wird fast augenblicklich aufgebaut. Alle Ergebnisse sind mit make -j8.
Michael Pankov

8

Ubuntu 13.04 enthält GHC 7.6.2, leider gibt es noch keine Haskell-Plattform für GHC 7.6.x. Daher sollten Sie zunächst eine Eariler-Version von GHC (dh 7.4.x) und Haskell Platform aus dem Quellcode erstellen.

Weitere Informationen finden Sie hier: https://launchpad.net/ubuntu/raring/i386/haskell-platform


5
Man wundert sich, warum sie, da sie wissen, dass es noch keine Plattform-Version mit GHC 7.6 gibt, GHC 7.6 ausliefern und damit die Haskell-Entwicklung für viele Leute zum Erliegen bringen.
Matthew Walton

Sie müssen das mit den Paketbetreuern besprechen
Thorbjørn Ravn Andersen

6

Wie die ausgezeichnete Antwort von Alain O'Dea oben zeigt, ist dieses Problem nicht einfach zu beheben, und für Ubuntu 13.04 ist in der Zwischenzeit keine Hashell-Plattform verfügbar.

Sie können es fälschen, indem Sie die Pakete in dieser Liste installieren: http://packages.ubuntu.com/precise/haskell-platform

Hier ist ein Befehl, der dies für Sie erledigt:

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

Die beiden fehlenden Elemente sind aus offensichtlichen Gründen die Pakete haskell-platform-doc und haskell-platform-prof.

Hoffentlich beheben die Ubuntu-Entwickler das Inkompatibilitätsproblem bald.

In diesem Sinne:

Außerdem: Ich habe leider nicht den Ruf, dies als Kommentar auf dieser StackExchange-Site zu hinterlassen, aber das ist der am besten geeignete Ort.

Es gibt einen Fehler im Launchpad, der jedoch nicht viel Beachtung findet. Bitte besuchen Sie diese Seite und markieren Sie sie als betroffen, wenn Sie auf dieser Seite gelandet sind, weil die Haskell-Pakete von Ubuntu 13.04 abgespritzt sind:

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

Hoffentlich nimmt ein Mod diese Antwort und macht daraus einen Kommentar, wo er hingehört. Entschuldigung - ich habe nur noch keinen Ruf bei askubuntu!


1
Ich werde den Launchpad-Bug-Tracker als Top-Kommentar in diesen Thread einfügen. Ich finde es wichtig, dass Leute, die diese Seite lesen, dorthin gehen und Druck ausüben, damit dies gelöst wird.
Rafael S. Calsaverini

1

Ich habe dieses Skript verwendet .

#!/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

Ich hoffe es hilft.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.