2016-08-08 8 views
3

У меня есть проект, который я хочу скомпилировать с LTS 2, но я застреваю, пытаясь обойти this well-known bug in OS X 10.11.Переверните версию камеры LTS

Могу ли я как-то указать более новую версию Cabal для использования с ghc-7.8.4? Обратите внимание, что проект действительно компилируется с GHC 7.8. *.

Edit:

Действительно означало Cabal, не cabal-install.

Edit 2:

На самом деле, ответ на этот вопрос не решает мою конкретную проблему (сводную helium, которая требует GHC < = 7.8.4), потому что ошибка не является специфичным для Cabal, но скорее к unix, от которого зависит GHC < 7.10.

+1

Если нет другого способа, вы всегда можете просто сбросить стек и использовать обычную кабалу. Это не идеальный вариант, но в крайнем случае, если стек застрял. – MarLinn

+1

Я не думаю, что 'stack' вызывает двоичный код cabal - по крайней мере, не stack-1.1.2. Я бы попросил просить список рассылки [haskell-stack list] (https://groups.google.com/forum/#!forum/haskell-stack) или скомпилировать с помощью песочницы. – ErikR

+1

Вы ищете установку стека --upgrade-cabal? –

ответ

1

Как указано в Michael Snoyman's comment, есть stack setup --upgrade-cabal, чтобы сделать именно это. Вот для ответа на этот вопрос.


В моем конкретном случае (проблема XY), для того, чтобы работать, я должен был сделать обычную работу вокруг that El Capitano related bug, что объясняется here. Поэтому я включил rootless, запустил команду обновления и снова включил rootless.

Безусловно, я боюсь: ошибка относится к unix < 2.7.1.0, от которой зависит также GHC 7.8.4. Поэтому даже после обновления cabal я не могу скомпилировать что-либо в lts-2, если я не отключу rootless, что довольно раздражает.

На самом деле это отвратительно, что the GHC folks decided not to file a new minor release с обновленным пакетом unix. Это означает, что никакая реалистичная/недавняя конфигурация OS X не может построить ничего, что связано с GHC < 7.10.

1

Я думаю, что проблема связана не только с Cabal версией библиотеки (кстати, стек не нужен или нужен cabal-install), но и для версии GHC. В FAQ Stack упоминается item about this error, но я думаю, что это не помогло мне, и я только что обновил его до 7.10.2.

+0

Я пытаюсь скомпилировать компилятор 'helium', но только GHC 7.10 установлен глобально, что не компилируется. Установка GHC 7.8 бок о бок была бы слишком большой проблемой (я бы скорее не попробовал «гелий»), поэтому я попытался использовать «стек», который, очевидно, соответствовал бы счету, если бы не эта ошибка. –

+0

@SebastianGraf с 'stack', нет никакой проблемы с установкой GHC 7.10. Просто запустите 'stack setup', и он установит ghc внутри' ~/.stack', не загрязняя ваш путь. После следующего запуска 'stack build', он будет использовать этот GHC, даже если он не находится на вашем PATH. –

+0

Да, я знаю. Но 'helium' не строится с 7.10, поэтому я либо должен использовать lts-2.22, либо установить 7.8 вручную, чтобы не загрязнять мой путь. –

1

Вот рецепт для установки GHC-7.8.4 в каталог по вашему выбору:

  1. скачать «bindist» от https://www.haskell.org/ghc/download_ghc_7_8_4#macosx_x86_64
  2. распакуйте его в каталог царапанию
  3. Создать каталог назначения , например $HOME/my-prefix.
  4. В пробеге каталоге царапина:

    $ ./configure --prefix=$HOME/my-prefix 
    $ make install 
    

Теперь GHC можно найти в $HOME/my-prefix/bin.

+0

Спасибо, но это на самом деле не отвечает на вопрос, который я задал, а также не помогает с конкретной проблемой, с которой я столкнулся, потому что ошибка присутствует в 'unix <2.7.1.0 ', от которых зависят как' Cabal', так и 'ghc' <7.10. Единственное реальное обходное решение - отключить режим без корней, что я могу сказать. –

+0

Но вы можете перестроить версию unix, которая вам нужна с этой версией ghc. – ErikR

 Смежные вопросы

  • Нет связанных вопросов^_^