Как установить Haskell Platform для Ubuntu 13.04?

37

Как установить Haskell Platform для Ubuntu 13.04? Я получаю следующую ошибку при вводе sudo apt-get install haskell-platform:

E: Unable to locate package haskell-platform error 
wulfreak
источник
Вы также можете найти askubuntu.com/questions/288201/… полезными
hdgarrood
2
@HokieTux «Для всего этого есть ошибка на Launchpad, но она не привлекает к себе большого внимания. Пожалуйста, посетите это место и отметьте, что это влияет на вас, если вы попали на эту страницу, потому что пакеты Ubuntu 13.04 для Haskell скрыты:» Ссылка: bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Рафаэль С. Калсаверини,
Это исправлено в 13.10, поэтому обновление - это решение для тех, кто может обновить.
Squidly
Обновление FUBAR 13.04 (так как многие из моих предыдущих попыток обновления потерпели неудачу).
каратэдог
Это не исправлено в 13.10. Вы не сможете apt-get install ghc, что зависит от GHC 4.8.1, в то время как тот, который установлен и используется многими библиотеками Ubuntu, является 4.8.2. Это чертовски прекрасное время для перехода на NixOS.
polkovnikov.ph

Ответы:

38

Разбиение застряло в долине между наличием GHC, слишком нового для Haskell Platform 2012.4.0.0 и слишком старого для 2013.2.0.0. Эта долина может быть преодолена с помощью боли и клейкой ленты.

Вы можете установить Haskell Platform 2013.2.0.0 из исходного кода, если у вас уже установлен GHC. Это немного процесс, но он работает.

Сначала установите GHC 7.6.2:

sudo apt-get install ghc

Теперь вам нужен GHC 7.6.3, так как это предварительное требование для Haskell Platform 2013.2.0.0.

ВНИМАНИЕ:

Вы можете подумать, что установка из архивов unknown-linux GHC будет работать. Не будет GHC в этих архивах динамически связан с /usr/lib/libgmp.so.3 который недоступен на Raring, который имеет libgmp.so.10 . НЕ поддавайтесь соблазну символической ссылки на эту библиотеку на имя и местоположение более ранней версии, чтобы обмануть компоновщик. Я пошел туда, и это путь к очень запутанным сбоям и очень плохая практика, поэтому я исправил свои пути и построил GHC из исходного кода.

Затем вам нужно получить и собрать GHC 7.6.3 из исходного кода (GHC - это компилятор с собственным размещением, поэтому для его сборки требуется GHC):

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

Компиляция GHC заняла у меня довольно много времени (несколько часов,> период полураспада изотопа цезия Cs-134m), так что это, вероятно, очень хорошее время для перерыва или сна. Он проходит три этапа (0, 1 и 2) построения компилятора, а затем сборки следующего этапа компилятора с помощью компилятора, который был собран.

Чтобы ускорить процесс компиляции, вы можете использовать

make -j 8

на приведенном выше шаге, чтобы использовать многоядерный процессор.

Затем получите и соберите платформу Haskell из исходного кода (в качестве примера я буду использовать 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

Сборка платформы Haskell заняла у меня более 30 минут, так что это еще одно хорошее время для перерыва.

Теперь у вас должна быть работающая платформа Haskell 2013.2.0.0 с GHC 7.6.3, правильно связанная с libgmp.so.10.

Ален О'Ди
источник
4
На Ubuntu 13.04 при новой установке мне пришлось установить libncurses5-devпакет, чтобы установка работала. =)
Фелипе Алмейда
1
Мне также нужно:sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
Рафаэль С. Calsaverini
я могу удалить эти 2 папки после установки haskell?
Алан Коромано
Да, вы можете удалить папки после установки. Спасибо за комментарии и правки ребят. Хорошая вещь.
Ален О'Ди
3
Чтобы не пугать людей: сборка ghc-7.6.3моего пятилетнего рабочего стола заняла около 2,5 часов, а современного рабочего стола i7 - около 20 минут. Платформа Haskell строится практически мгновенно. Все результаты с make -j8.
Михаил Панков
8

Репозиторий Ubuntu 13.04 содержит GHC 7.6.2, к сожалению, пока нет платформы Haskell для GHC 7.6.x. Так что на данный момент вам лучше создать более раннюю версию GHC (то есть 7.4.x) и Haskell Platform.

См. Это для получения дополнительной информации: https://launchpad.net/ubuntu/raring/i386/haskell-platform

Су-
источник
5
Кто-то задается вопросом, почему, зная, что еще нет версии Platform, включая GHC 7.6, они решили выпустить GHC 7.6 и таким образом нарушить разработку Haskell для многих людей.
Мэтью Уолтон,
Вы должны обсудить это с сопровождающими пакета
Торбьерн Равн Андерсен
6

Как отличный ответ от Алена О'Ди, приведенный выше, эту проблему нелегко решить, и в настоящее время для Ubuntu 13.04 нет платформы haskell.

Вы можете «подделать» его, установив пакеты в этом списке: http://packages.ubuntu.com/precise/haskell-platform

Вот команда, чтобы сделать это для вас:

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

По понятным причинам отсутствуют два элемента: пакеты haskell-platform-doc и haskell-platform-prof.

Надеемся, что разработчики Ubuntu скоро решат проблему несовместимости.

На этой записке:

К тому же: меня, к сожалению, нет репутации оставлять это в качестве комментария на этом сайте StackExchange, но это самое подходящее место.

Для всего этого есть ошибка на Launchpad, но она не привлекает большого внимания. Пожалуйста, посетите это и отметьте, что это влияет на вас, если вы попали на эту страницу, потому что пакеты Haskell в Ubuntu 13.04 скрыты:

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

Надеюсь, мод примет этот ответ и превратит его в комментарий, к которому он относится. Извините - у меня просто нет репутации на Askubuntu!

bhilburn
источник
1
Я добавлю трекер панели запуска в качестве главного комментария в этой теме. Я думаю, что важно, чтобы люди, которые читают эту страницу, пошли туда и оказали некоторое давление для решения этой проблемы.
Рафаэль С. Калсаверини
1

Я использовал этот скрипт .

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

Надеюсь, это поможет.

Алессандро Буггин
источник
0

sudo apt-get install ghc

GHC расшифровывается как Glasgow Haskell Compiler

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

thefourtheye
источник
6
GHC - это не то же самое, что платформа Haskell, представляющая собой набор конкретных версий определенных библиотек наряду с определенной версией компилятора.
Мэтью Уолтон,
2
Вы даете ноль новой информации.
Фил