2015-07-03 4 views
2

Я пытаюсь запустить haskelldb-demoмеждусобойчик песочница использует системные пакеты уровня

cabal sandbox init && cabal install --only-dependencies 

Она нуждается в HDBC-postgresql-2.2.3.1 который нуждается в версии базового пакета в base>=3 && <4.5. Моя система имеет base pkg версии 4.7+.

Я использую Кабалы песочницу, но междусобойчик установить еще относится к основанию (v4.7.0.2) пакет из глобального хранилища и отвергает все версии HDBC-PostgreSQL

rejecting: HDBC-postgresql-2.2.3.1 (conflict: base==4.7.0.2/installed-bfd..., 
HDBC-postgresql => base>=3 && <4.5) 

почему заговорщиков относится к пакеты системного уровня, вдохновляют меня на создание песочницы?

ответ

3

Cabal всегда использует глобальную базу данных пакетов. Песочница только означает, что вы не используете базу данных пользовательского пакета. Предположительно, убедитесь, что у вас есть базовые пакеты и ghc.

Если у вас есть несоответствие на базе, это означает, что пакет, который вы пытаетесь установить, несовместим с вашей версией GHC. Я бы не стал устанавливать разные версии базы.

Похожие вопросы (без четких ответов):

How to get cabal to ignore the global package DB when using a sandbox

cabal sandbox v. global package db

+1

Это также возможно, что пакет будет на самом деле построить штраф против новой версии базы, если только оно не было ' базовое ограничение <4.5'. OP может попробовать добавить '--allow-newer = base'. –