2013-04-20 1 views
2

Я пытаюсь установить хек через установку cabal.Невозможно установить Хейк через установку каббата

Во-первых - хотя Lastest пакет доступна 1.3.7, междусобойчик пытается установить 1.2

Помимо этого:

~ % cabal install hake-1.2 
Resolving dependencies... 
Configuring hake-1.2... 
Building hake-1.2... 
Preprocessing library hake-1.2... 

Development/Hake.hs:49:8: 
    Could not find module `System.Directory.Tools' 
    Perhaps you meant System.Directory (from directory-1.1.0.2) 
    Use -v to see a list of the files searched for. 
Failed to install hake-1.2 
cabal: Error: some packages failed to install: 
hake-1.2 failed during the building phase. The exception was: 
ExitFailure 1 

Если я стараюсь быть более точным - я получаю другие ошибки

~ % cabal install hake-1.3.7 
Resolving dependencies... 
cabal: Could not resolve dependencies: 
trying: hake-1.3.7 
rejecting: base-3.0.3.2, 3.0.3.1 (global constraint requires installed 
instance) 
rejecting: base-4.5.1.0/installed-81d... (conflict: hake => base<=4.3.1.0) 
rejecting: base-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 (global constraint 
requires installed instance) 

Я в тупике.

Update

Кажется, автор сделал соответствующие изменения в пакет в источнике, по крайней мере, на GitHub https://github.com/YoshikuniJujo/hake_haskell, но они не находятся в Hackage еще.

ответ

5

basehake, что предотвращает установку последней версии с использованием последних версий ghc. (У старой версии hake отсутствует верхняя граница, но на самом деле она нужна, что объясняет первую ошибку, которую вы получите.)

Лучшим вариантом является связаться с автором и попросить его загрузить обновленную версию в Hackage. Следующим лучшим (и более непосредственным) вариантом является отредактировать файл .cabal.

Say

$ cabal unpack hake-1.3.7 
$ cd hake-1.3.7 

Затем редактировать hake.cabal, найти Build-Depends: строку, которая содержит base<=4.3.1.0 и изменения, что говорить просто base вместо этого. Затем скажите

$ cabal install 

в этой директории. Разумеется, такой тип зависимых зависимостей не всегда гарантированно работает, но в этом случае он кажется.

+0

Благодарим за это - я полагаю, что я должен поставить учебную кабалу выше списка. – Abizern

2

Глядя на зависимость base (≤4.3.1.0), hake-1.3.7 требует довольно старую версию библиотеки base. Похоже, он хочет at most GHC 7.0. Cabal видит, что он не может удовлетворить требование для base, поэтому он отказывается устанавливать hake.

hake-1.2, с другой стороны, не указывает верхнее требование на base. Поскольку Cabal не знает о требовании, он неправильно пытается построить hake, и он просто не компилируется.