Регистрация нескольких версий пакетов с помощью `ghc-pkg`? - PullRequest
3 голосов
/ 28 февраля 2011

Я пытаюсь установить GHC и Cabal на FreeBSD 8.1. Я установил GHC 7.0.1 (потому что это текущая стабильная версия) и теперь пытаюсь установить Cabal (для установки cabal-install), но это сообщение об ошибке завершается неудачно.

%./Setup configure
Configuring Cabal-1.8.0.4...
Setup: At least the following dependencies are missing:
base >=4 && <3 && >=1 && <5, filepath >=1 && <1.2
%

Определенно у меня слишком высокая версия библиотеки.

%ghc-pkg list
/usr/local/lib/ghc-7.0.1/package.conf.d
   Cabal-1.10.0.0
   array-0.3.0.2
   base-4.3.0.0
   bin-package-db-0.0.0.0
   bytestring-0.9.1.8
   containers-0.4.0.0
   directory-1.1.0.0
   extensible-exceptions-0.1.1.2
   ffi-1.0
   filepath-1.2.0.0
   ghc-7.0.1
   ghc-binary-0.5.0.2
   ghc-prim-0.2.0.0
   haskell2010-1.0.0.0
   haskell98-1.1.0.0
   hpc-0.5.0.6
   integer-gmp-0.2.0.2
   old-locale-1.0.0.2
   old-time-1.0.0.6
   pretty-1.0.1.2
   process-1.0.1.4
   random-1.0.0.3
   rts-1.0
   template-haskell-2.5.0.0
   time-1.2.0.3
   unix-2.4.1.0
/home/eonil/.ghc/x86_64-freebsd-7.0.1/package.conf.d
   network-2.2.1.5
   parsec-2.1.0.1
%

Должен ли я перейти на GHC 6.x? Или я могу установить более низкую версию пакетов? (или параллельная установка)

Ответы [ 3 ]

3 голосов
/ 28 февраля 2011

Вы столкнулись с тем, что известно как Собственный DLL в Haskell .

Вы можете установить предыдущие версии библиотек, просто добавив номер версии, например, cabal install base-3.0.3.2, хотя я не знаю, какие ограничения существуют в GHC 7.0.1.

Вы также можете создавать маленькие песочницы для клики с помощью cabal-dev или capri . Это позволит вам начать с нуля, игнорируя пакеты, которые могут вызвать конфликты.

Если ничего из этого не работает, и вы обнаружили, что вам необходимо переустановить GHC, могу я порекомендовать вам использовать Haskell Platform . Он объединяет GHC 6.12.3 с рядом полезных библиотек.

Обновление: Неправильно прочитано, что вы пытались фактически установить cabal install. Я бы просто использовал платформу Haskell. Он поставляется со всеми этими настройками.

1 голос
/ 28 февраля 2011

Одним из решений было бы установить ghc-6.12, который предоставил бы Cabal-1.8. Вы можете использовать этот ghc для сборки cabal-install для исполняемого файла, а затем переключиться на ghc-7 для всего остального после сборки исполняемого файла cabal.

Однако я думаю, что вы сможете собрать Cabal-1.8 с ghc-7. Похоже, что установщик запутался из-за базовых зависимостей. Попробуйте сделать ./Setup configure -fbase4 -f-base3 и посмотрите, сработает ли это.

Редактировать: если у вас установлены darcs, вы можете проверить дерево Кабала . Это уже настроено для Cabal-1.10 и ghc-7, поэтому оно должно собираться из коробки. Вы также можете получить исходный код, если не можете установить darcs.

0 голосов
/ 28 февраля 2011

Мне пришлось понизить рейтинг GHC 6.x.Первоначально я сделал это для Happstack.Однако Happstack требуется как минимум 6.12.x GHC, и установка Cabal на FreeBSD 8.1 с GHC 7.x слишком сложна.(Я не смог добиться успеха)

Я только что скачал и установил GHC 6.12.3 с веб-сайта GHC, и все работало волшебно!Кабал, Хэпстак установлены сразу.Я потерпел неудачу только один раз из-за недостатка места подкачки.

...