Как установить Haskell с «базовой» спецификацией? - PullRequest
2 голосов
/ 04 февраля 2020

Я хочу запустить программу, которая требует указанную c версию пакета base. Эта версия не та, которая поставляется с версией моей операционной системы Haskell, поэтому я, очевидно, не могу использовать версию моей операционной системы Haskell.

Было бы здорово, если бы conda работал с Haskell как он работает с Python, чтобы создать среду для конкретной c версии Haskell, но это не так. Также это не тот случай, когда функция Haskell sandbox позволяет указывать версию base, не говоря уже о Haskell.

PS: разочарование, вопрос SE " Как чтобы установить более старую версию базы в Haskell ", мы ответили на другой вопрос без изменения названия, чтобы отразить вопрос, на который он ответил.

1 Ответ

2 голосов
/ 05 февраля 2020

Существует инструмент, который работает даже лучше, чем conda в Haskell и называется stack. Версия base связана с установленной версией gh c. Сначала вы можете установить stack, и он автоматически установит нужную вам версию gh c:

$ curl -sSL https://get.haskellstack.org/ | sh

Эта команда автоматически установит gh c -8.6.5, которая определяется lts-14.22 resolver и сделает все пакеты доступными для вас по запросу, включая base

$ stack --resolver lts-14.22 ghci

Для получения спецификации resolver:

  1. Go до эта таблица всех пакетов, которые устанавливаются с определенной версией GH C .
  2. Если требуемая версия base недоступна, найдите полосу прокрутки внизу таблицы и прокручивайте вправо, пока не найдете ее.
  3. Скажите, что это base-4.11.1.0, затем посмотрите на заголовок столбца для версии gh c, которая поставляется с этой базой.
  4. В этом примере любая из этих версий gh c: 8.4.4, 8.4.3, 8.4.2 будет иметь эту версию base.
  5. Go на домашней странице stackage.org и найдите соответствующий последний распознаватель в списке «Последняя версия LTS на GHC».
  6. В этом примере любой lts-12 подойдет для базы выше. * и base доступны в штабеле.
...