2012-03-15 10 views
5

Próbuję zainstalować pakiet . Doskonale się buduje i nie ma absolutnie żadnych problemów.Haskell Cabal: Tajemnicze zagubienie lub rekurencyjne zależności

Jednak, gdy chcę go używać lub zainstalować pakiety jak happstack-jmacro, które zależą jmacro, otrzymuję komunikaty o błędach tak:

<command line>: cannot satisfy -package-id jmacro-0.5.2-71bd40707d94b0e8eb6e70515ff6a5f4: 
    jmacro-0.5.2-71bd40707d94b0e8eb6e70515ff6a5f4 is unusable due to missing or recursive dependencies: 
     haskell-src-meta-0.5-4bf46b12fb313927e18a04de209944de template-haskell-2.5.0.0-f0b857ddb066aae09d974e610edd228f 
    (use -v for more information) 

Nie ma absolutnie żadnych rekurencyjne lub brakujące zależności. Czy to błąd?

Używam template-haskell-2.5.0.0 (ponieważ nowsze wersje nie budują) i haskell-src-meta-0.5. GHC to 7.0.4

+2

Ah, Cabal dependency piekło. –

Odpowiedz

2

OK, rozwiązany to sam:

jest błąd i template-haskell-2.5.0.0 został zainstalowany w katalogu systemowym kabały, a także w moim katalogu użytkownika.

Kiedy wymuszono niezarejestrowanie template-haskell w moim katalogu użytkownika, wszystko było w porządku.

11

Wygląda na to, że twoje paczki są zepsute. ghc-pkg check może narzekać na niektóre pakiety; jeśli tak, możesz wszystkie z nich uzyskać ghc-pkg unregister <pkg>. W przeciwnym razie najlepiej zacząć od nowa: zapisz plik ~/.cabal/config, pozbądź się ~/.ghc i ~/.cabal i ponownie zainstaluj cabal-install.

Takie problemy z kabinami są dość powszechne, więc warto przyjrzeć się łagodzeniu bólu za pomocą cabal-dev.