Каков самый гладкий способ обновления платформы haskell до последней версии?

Я на OSX 10.6, и у меня есть платформа 2010.2.0.0 в настоящее время. Должен ли я просто установить 2011.2.0.1 сверху или есть механизм обновления, который будет более плавным?

4 ответов


У меня определенно был неровный опыт обновления с платформой Haskell. Если у вас достаточно проблем, что вы просто хотите стереть вещь и начать все заново (вы не будете первым!), посмотрите здесь:

везде, что платформа GHC/Haskell устанавливает


насколько я знаю, нет механизма обновления. И у меня никогда не было проблем с установкой одной версии платформы поверх другой на OSX.


Я пришел из будущего (06/2013), и мне просто пришлось взорвать всю мою установку платформы haskell, чтобы успешно установить более новую. Так... по-прежнему нет гладкого способа модернизации. (По крайней мере, в OS X)


если вам нужно взорвать существующую платформу, зависит от того, где cabal настроен для установки пакетов.

на Mac OS X,поставила cabal-install модифицируется для создания конфигурации, которая разделяет пакеты по версии GHC. Если это конфигурация, которую вы использовали,вы можете просто установить платформу Haskell поверх старой.

install-dirs user
  prefix: /Users/pgiarrusso/Library/Haskell/$compiler/lib/$pkgid
-- [...]
install-dirs global
  prefix: /Library/Haskell/$compiler/lib/$pkgid

установка конкретных двоичных файлов, как те из gtk2hs-buildtools, только отделены с конфигурацией как выше. Насколько я могу судить, по крайней мере, фактический регистр пакетов (в ~/.ghc/$GHC_VERSION, используемый ghc-pkg и cabal) вместо этого всегда в-GHC-версии. Конфигурация, сгенерированная vanilla cabal-install (из Hackage), не принимает таких мер предосторожности.

install-dirs user
  -- prefix: /Users/pgiarrusso/.cabal
[...]
install-dirs global
  -- prefix: /usr/local

если у вас есть такая конфигурация, я ожидаю, что вы получите проблемы, если вы не удалите по крайней мере данные в ~/.cabal, а также двоичные файлы в /usr/local со старой платформы Haskell-но не взрывайте весь каталог, так как /usr/local is часто используется для установки другого программного обеспечения!

конфигурация по умолчанию генерируется только тогда, когда конфигурации не существует, поэтому для обновления конфигурации вам нужно переместить существующую.