Обновление 01/12/2019 :
Я недавно переустановил последнюю версию anaconda (Anaconda3-2018.12-Linux-x86_64.sh). Но на этот раз не установил на него пакет gcc (например, gxx_linux-64) и не добавил каталоги bin моего конкретного env в мой $ PATH (фрагмент, который он устанавливает в моем файле .bashrc
, похоже, управляет этим ) и инструкции IHaskell по умолчанию прошли гладко, даже при включенной среде conda моя среда conda.
Оригинальный пост:
Для моих целей я хотел, чтобы IHaskell для jupyter выучил Haskell и сделал несколько заметок, пока я делал это. У меня также есть conda
через anaconda в моей среде, который использовался для других целей программирования, и получил ту же ошибку, что вы сделали выше. Итак ... Я настроил экземпляр jupyter, который не был основан на conda, кроме того, и это, похоже, помогло.
Затем я установил jupyter как глобальный бинарный файл. В моем случае с Ubuntu Linux это было с sudo apt install jupyter-notebook
. Затем я выборочно деактивировал conda только в окне терминала, в котором был включен conda deactivate ; export PATH=/usr/bin:$PATH
.
Я также добавил символическую ссылку в свой локальный libgmp, чтобы сделать его более доступным. Я обнаружил, что наличие символьной ссылки libgmp.so.3
работает нормально (даже если она связана с более новой libgmp).
$ sudo ldconfig -p | grep libgmp
libgmp.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgmp.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libgmp.so /usr/lib/libgmp.so.3
$
Затем я скачал стек из релизов , один с gmp (stack-1.9.3-linux-x86_64-gmp4.tar.gz
) и поместил его в какой-то каталог, ~/apps/stack
, который я добавил в свой $ PATH, чтобы я мог вызвать stack
, С этого момента, когда conda
деактивировано для указанной выше команды, инструкции от IHaskell стали более плавными. Я думаю, что мне нужно было добавить allow-newer: true
для необязательного stack install
gtk2hs-buildtools для работы (YMMV).
И все, ядро haskell установлено и готово к использованию:
$ which ihaskell
/home/yuvilio/.local/bin/ihaskell
$ ihaskell install --stack
$ jupyter kernelspec list
Available kernels:
haskell /home/yuvilio/.local/share/jupyter/kernels/haskell
...
$
А потом эврика, все заработало. Я просто использовал свои глобально установленные jupyter-notebook и jupyter-console (с отключенной в этом терминале conda, как указано выше), и ядро haskell было доступно и работало просто отлично:
$ jupyter-console --kernel=haskell
Jupyter console 5.2.0
IHaskell 0.9.1.0 GHC 8.6.3
In [1]: sum[1..5]
:15
In [2]: double x = x + x
In [3]: double 3
:6
Я уверен, что есть более умный способ заставить IHaskell работать с conda, но похоже, что это все еще продолжается . Хорошая вещь об этой настройке состоит в том, что на других экранах терминалов мой conda работал нормально, как обычно на других сеансах терминала. Это не очень сложная производственная установка, но если вы просто хотите сделать jupyter-ноутбуки с контентом на haskell, этого достаточно для начала работы.