Jak zainstalować platformę Haskell dla Ubuntu 13.04?

37

Jak zainstalować platformę Haskell dla Ubuntu 13.04? Podczas pisania pojawia się następujący błąd sudo apt-get install haskell-platform:

E: Unable to locate package haskell-platform error 
wulfreak
źródło
może się również przydać askubuntu.com/questions/288201/... przydatne
hdgarrood 30.04.2013
2
Autorstwa @HokieTux „Występuje błąd na Launchpadzie, ale nie zwraca na to większej uwagi. Odwiedź to i zaznacz, że wpływa na ciebie, jeśli wylądowałeś na tej stronie, ponieważ pakiety Haskell Ubuntu 13.04 są ukryte:” Link to: bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Rafael S. Calsaverini
Zostało to naprawione w 13.10, więc aktualizacja jest rozwiązaniem dla tych, którzy mogą uaktualnić.
Squidly
Uaktualnienie FUBAR 13.04 (tyle, ile nie powiodła się moja poprzednia próba uaktualnienia).
karatedog
Nie zostało to naprawione w 13.10. Nie będziesz w stanie tego zrobić apt-get install ghc, co zależy od GHC 4.8.1, podczas gdy ten zainstalowany i używany przez wiele bibliotek Ubuntu to 4.8.2. Cholernie idealny czas na migrację do NixOS.
polkovnikov.ph

Odpowiedzi:

38

Raring znajduje się w dolinie między posiadaniem GHC zbyt nowego dla Haskell Platform 2012.4.0.0 i zbyt starego dla 2013.2.0.0. Dolinę tę można łączyć z taśmą przeciwbólową i taśmą klejącą.

Możesz zainstalować Haskell Platform 2013.2.0.0 ze źródła, jeśli masz już zainstalowany GHC. To trochę proces, ale działa.

Najpierw zainstaluj GHC 7.6.2:

sudo apt-get install ghc

Teraz potrzebujesz GHC 7.6.3, ponieważ jest to warunek wstępny dla platformy Haskell 2013.2.0.0.

UWAGA:

Możesz pomyśleć, że instalacja z nieznanego linuksa archiwum GHC będzie działać. Nie będzie. GHC w tych archiwach jest dynamicznie łączony z /usr/lib/libgmp.so.3, który jest niedostępny w Raring, który ma libgmp.so.10 . NIE kusi symlinkowania tej biblioteki do jej wcześniejszej wersji i lokalizacji w celu sfałszowania linkera. Poszedłem tam i jest to droga do bardzo mylących niepowodzeń i jest to bardzo zła praktyka, więc poprawiłem swoje drogi i zbudowałem GHC ze źródła.

Następnie musisz pobrać i zbudować GHC 7.6.3 ze źródła (GHC to kompilator z własnym hostem, więc potrzebuje GHC do jego zbudowania):

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

Kompilacja GHC zajęła mi trochę czasu (kilka godzin,> okres półtrwania izotopu cezu Cs-134m), więc prawdopodobnie jest to bardzo dobry czas na przerwę lub sen. Przechodzi przez trzy etapy (0, 1 i 2) budowania kompilatora, a następnie budowania następnego etapu kompilatora za pomocą kompilatora, który został zbudowany.

Aby przyspieszyć proces kompilacji, możesz użyć

make -j 8

w powyższym kroku, aby wykorzystać wielordzeniowy procesor.

Następnie pobierz i zbuduj platformę Haskell ze źródła (użyję jako przykładu 2013.2.0.0):

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

Kompilacja platformy Haskell zajęła mi ponad 30 minut, więc jest to kolejny dobry moment na przerwę.

Powinieneś teraz mieć działającą platformę Haskell 2013.2.0.0 z GHC 7.6.3 poprawnie połączoną z libgmp.so.10.

Alain O'Dea
źródło
4
W Ubuntu 13.04 podczas nowej instalacji musiałem zainstalować libncurses5-devpakiet, aby instalacja działała. =)
Felipe Almeida
1
Potrzebowałem również:sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
Rafael S. Calsaverini,
czy mogę usunąć te 2 foldery po instalacji haskell?
Alan Coromano
Tak, możesz usunąć foldery po instalacji. Dziękuję za komentarze i redaguje. Dobry towar.
Alain O'Dea,
3
Żeby nie odstraszyć ludzi: budowanie ghc-7.6.3na moim pięcioletnim komputerze zajęło około 2,5 godziny, a na nowoczesnym komputerze i7 - około 20 minut. Platforma Haskell buduje się niemal natychmiast. Wszystkie wyniki są z make -j8.
Michael Pankov
8

Repozytorium Ubuntu 13.04 zawiera GHC 7.6.2, niestety nie ma jeszcze platformy Haskell dla GHC 7.6.x. Więc lepiej zbuduj na razie wersję GHC (tj. 7.4.x) i platformę Haskell ze źródła.

Zobacz to, aby uzyskać więcej informacji: https://launchpad.net/ubuntu/raring/i386/haskell-platform

su-
źródło
5
Można się zastanawiać, dlaczego wiedząc, że nie ma jeszcze wydania Platformy, w tym GHC 7.6, zdecydowali się wysłać GHC 7.6 i tym samym przerwać rozwój Haskell dla wielu osób.
Matthew Walton
Musisz to omówić z opiekunami pakietów
Thorbjørn Ravn Andersen
6

Jako doskonałą odpowiedź Alaina O'Dea na powyższe szczegóły, problem ten nie jest łatwy do rozwiązania, aw międzyczasie nie ma dostępnej platformy haskell dla Ubuntu 13.04.

Możesz to trochę „podrobić”, instalując pakiety na tej liście: http://packages.ubuntu.com/precise/haskell-platform

Oto polecenie, aby zrobić to za Ciebie:

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

Z oczywistych powodów brakuje dwóch elementów: pakietów haskell-platforma-doc i haskell-platform-prof.

Mamy nadzieję, że deweloperzy Ubuntu wkrótce naprawią problem niezgodności.

W tej notatce:

Ponadto: nie mam reputacji, aby zostawić to jako komentarz na tej stronie StackExchange, ale jest to najbardziej odpowiednie miejsce.

Na tym wszystkim jest błąd w Launchpad, ale nie przyciąga on zbyt wiele uwagi. Odwiedź tę stronę i oznacz ją jako wpływającą na ciebie, jeśli wylądowałeś na tej stronie, ponieważ pakiety Haskell Ubuntu 13.04 są ukryte:

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

Mam nadzieję, że mod weźmie tę odpowiedź i przekształci ją w komentarz, do którego należy. Przepraszam - po prostu nie mam jeszcze reputacji na askubuntu!

Bhilburn
źródło
1
Umieszczę trackera błędów programu uruchamiającego jako główny komentarz w tym wątku. Myślę, że ważne jest, aby ludzie, którzy czytają tę stronę, odwiedzali ją i wywierali presję na rozwiązanie tego problemu.
Rafael S. Calsaverini,
1

Użyłem tego skryptu .

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

Mam nadzieję, że to pomoże.

Alessandro Buggin
źródło
0

sudo apt-get install ghc

GHC oznacza Glasgow Haskell Compiler

http://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler

thefourtheye
źródło
6
GHC to nie to samo co platforma Haskell, która jest zbiorem konkretnych wersji określonych bibliotek obok konkretnej wersji kompilatora.
Matthew Walton,
2
Dajesz zero nowych informacji.
Phil