2016-05-01 3 views
0

Я пытаюсь установить ERD поэтому я могу производить некоторые диаграммы сущность отношений таблицы базы данных с помощью ERD и Graphviz.Как установить erd с установкой cabal без ошибки обработки ошибок?

Я делал все следующие установки в командной строке Git-Bash на ПК с Windows 64.

Сначала я установил Haskell (с междусобойчик в комплекте) от enter link description here, то я сделал

cabal update 

перед тем, фактическое установку ERD с этими результатами

$ cabal install erd 
Resolving dependencies... 
cabal.exe: Could not resolve dependencies: 
trying: erd-0.1.3.0 (user goal) 
next goal: base (dependency of erd-0.1.3.0) 
rejecting: base-4.8.2.0/installed-140... (conflict: erd => base==4.7.*) 
rejecting: base-4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1, 
4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 
4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0, 3.0.3.2, 3.0.3.1 (global constraint 
requires installed instance) 
Dependency tree exhaustively searched. 

Я видел, где сброс иногда помогает

rm -rf ~/.ghc ~/.cabal 

Но в моем случае это не меняет результатов, я все еще вижу «Не удалось разрешить зависимости»

+0

какая версия ghc/cabal вы используете - и какую версию erd вы хотите установить, также показать вывод 'ghc-pkg list' – epsilonhalbe

+0

Настоятельно рекомендую использовать [' stack'] (http: //haskellstack.org) или ['cabal sandboxes'] (http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html), это заставляет такие вещи не уходить, но случается * * lot ** easy – epsilonhalbe

+0

@epsilonhalbe: Я использую версию для каббала: 'cabal-install version 1.22.6.0 с использованием версии 1.22.5.0 библиотеки Cabal'. Я новичок в Hackell и Cabal, я не уверен, что такое _stack_ и _sandboxes_. –

ответ

1

Это наиболее вероятно, потому что erd это действительно старый пакет и в описании пакета он говорит

Properties 
Version 0.1.3.0 
Change log None available 
Dependencies base (==4.7.*) 
       , bytestring (==0.10.*) 
       , containers (==0.5.*) 
       , graphviz (==2999.*) 
       , parsec (==3.1.*) 
       , text (==1.*) [details] 

Если вы используете последний компилятор ghc-7.10 или даже ghc-8.0 - текущая версия base упакована вместе с ней - которая сегодня (2016-05-02) base-4.8, что несовместимо с вашим проектом.

Лучше всего переключитесь на более старую версию компилятора (ghc-7.8) или попробуйте загрузить пакет с cabal get erd и отредактируйте файл cabal на base == 4.8.* и попробуйте.

+0

Я сделал «cabal get erd», и некоторые файлы были обновлены. Я не уверен, где настроить файл cabal на 'base == 4.8. *'. Я нашел эрд.но я не видел «base ==» там где угодно. Как только я отредактирую файл erd.cabal, что мне нужно сделать? –

+0

Тогда вы не выглядели достаточно хорошо - 6-я строка снизу под «build-depends» – epsilonhalbe

3

Поскольку erd является исполняемым, я бы просто установить его с помощью stack:

Инструкции по установке stack можно найти здесь:

https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md

Прогон эти команды в оболочке:

cabal get erd-0.1.3.0 
cd erd-0.1.3.0 
stack init --resolver lts-2.22 
stack build 

Последний отчет команды:

Installing executable(s) in 
{some directory}/erd-0.1.3.0/.stack-work/install/x86_64-osx/lts-2.17/7.8.4/bin 

Мы используем lts-2.22, поскольку для erd-1.3.0 требуется база 4.7.

+0

FYI, стек распаковать будет загружать и распаковывать tarball –