Як встановити 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 

ви також можете скористатись askubuntu.com/questions/288201/… корисним
hdgarrood

2
Автор @HokieTux "У Launchpad є помилка на все це, але це не приділяє великої уваги. Будь ласка, відвідайте це і позначте це як впливає на вас, якщо ви приземлилися на цю сторінку, тому що пакети Haskell Ubuntu 13.04 шлангуються:" Посилання: bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Rafael S. Calsaverini

Це зафіксовано в 13.10, тому оновлення - це рішення для тих, хто може оновити.
Кальмар

Оновлення FUBAR 13.04 (як і багато моєї попередньої спроби оновлення не вдалося).
karatedog

Це не зафіксовано в 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.

ОБЕРЕЖНО:

Ви можете подумати, що встановлення з невідомого архіву 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
Рафаель С. Кальсаверіні

чи можу я видалити ці 2 папки після встановлення haskell?
Алан Коромано

Так, ви можете видалити папки після встановлення. Дякую за коментарі та редагування людей. Хороший матеріал.
Ален О'Дея

3
Тільки, щоб не лякати людей: ghc-7.6.3на моєму п'ятирічному робочому столі знадобилося близько 2,5 годин, а на сучасному робочому столі i7 - близько 20 хвилин. Платформа Haskell будується майже миттєво. Усі результати с make -j8.
Михайло Паньков

8

Ubuntu 13.04 repo містить GHC 7.6.2, на жаль, поки немає платформи Haskell для GHC 7.6.x. Отож, вам краще зараз створити ґрунт-версію GHC (тобто 7.4.x) та Haskell Platform з джерела.

Дивіться це для отримання додаткової інформації: https://launchpad.net/ubuntu/raring/i386/haskell-platform


5
Хочеться задатися питанням, чому, знаючи, що ще немає версії платформи, включаючи GHC 7.6, вони вирішили поставити GHC 7.6 і таким чином зламати розробку Haskell для багатьох людей.
Меттью Уолтон

Вам потрібно обговорити це з обслуговуючими пакунками
Thorbjørn Ravn Andersen

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!


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

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


6
GHC - це не те саме, що платформа Haskell, яка представляє собою сукупність певних версій певних бібліотек поряд із певною версією компілятора.
Меттью Уолтон

2
Ви даєте нуль нової інформації.
Філ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.