2017-01-10 4 views
1

installieren Wenn ichKabale: Haskell-gi-Basis verweigert

$ cabal install gi-cairo 

(Einer der langen Liste von Abhängigkeiten leksah zu installieren) versuchen, bekomme ich folgende Fehlermeldung:

Resolving dependencies... 
Configuring haskell-gi-base-0.9... 
Building haskell-gi-base-0.9... 
Failed to install haskell-gi-base-0.9 
Build log (/home/brandon/.cabal/logs/haskell-gi-base-0.9.log): 
Configuring haskell-gi-base-0.9... 
Building haskell-gi-base-0.9... 
Preprocessing library haskell-gi-base-0.9... 

src/Data/GI/Base/Attributes.hs:105:8: 
    Could not find module `Data.Proxy' 
    It is a member of the hidden package `tagged-0.8.5'. 
    Perhaps you need to add `tagged' to the build-depends in your .cabal file. 
    Use -v to see a list of the files searched for. 
cabal: Error: some packages failed to install: 
gi-cairo-0.1.14.8 depends on haskell-gi-base-0.9 which failed to install. 
haskell-gi-base-0.9 failed during the building phase. The exception was: 
ExitFailure 1 

Ich sehe der Teil über tagged, aber wo ist das .cabal Datei? Auf meinem Rechner ist es ein Verzeichnis unter ~/.cabal/, keine Datei. Und was füge ich dieser vermeintlichen Datei hinzu?

By the way, die Ausgabe von cabal --version:

cabal-install version 1.20.0.3 
using version 1.20.0.2 of the Cabal library 

Mein Ziel ist es, die Abhängigkeiten Ausgabe von leksah.sh zu installieren, wenn ich es laufen:

gi-cairo >=1.0.6 && <1.1, 
gi-gdk >=3.0.6 && <3.1, 
gi-gdkpixbuf >=2.0.6 && <2.1, 
gi-gio >=2.0.6 && <2.1, 
gi-glib >=2.0.6 && <2.1, 
gi-gobject >=2.0.6 && <2.1, 
gi-gtk >=3.0.6 && <3.1, 
gi-gtk-hs >=0.3.1.0 && <0.4, 
gi-gtksource >=3.0.6 && <3.1, 
gi-pango >=1.0.6 && <1.1, 
gi-webkit2 >=4.0.6 && <4.1, 
haskell-gi-base >=0.18 && <0.21, 
haskell-src-exts >=1.13.5 && <1.19, 
leksah-server >=0.16.1.0 && <0.17, 
ltk >=0.16.0.0 && <0.17, 
regex-tdfa >=1.1 && <1.3, 
regex-tdfa-text -any, 
vcsgui >=0.2.0 && <0.3 

Ich habe versucht, dieses Problem zu lösen seit letzter Nacht, aber ich sehe nichts dergleichen dokumentiert, wenn ich Google.


UPDATE: Wenn ich cabal install leksah versuchen laufen, bekomme ich folgende Fehler:

Resolving dependencies... 
cabal: Could not resolve dependencies: 
trying: leksah-0.15.2.0 (user goal) 
trying: vcswrapper-0.1.1/installed-1eQ... (dependency of leksah-0.15.2.0) 
next goal: transformers (dependency of leksah-0.15.2.0) 
rejecting: transformers-0.5.2.0/installed-3Es... (conflict: leksah => 
transformers>=0.2.2.0 && <0.5) 
rejecting: transformers-0.3.0.0/installed-ff2... (conflict: 
transformers-compat-0.5.1.4:three => transformers>=0.4.1 && <0.6) 
rejecting: transformers-0.5.2.0, 0.5.1.0, 0.5.0.1, 0.5.0.0 (conflict: leksah 
=> transformers>=0.2.2.0 && <0.5) 
trying: transformers-0.4.3.0 
next goal: mtl (dependency of leksah-0.15.2.0) 
rejecting: mtl-2.2.1/installed-4vs... (conflict: transformers==0.4.3.0, mtl => 
transformers==0.5.2.0/installed-3Es...) 
rejecting: mtl-2.1.2/installed-94c..., 2.2.1, 2.2.0.1, 2.2, 2.1.3.1, 2.1.2, 
2.1.1, 2.1, 2.0.1.1, 2.0.1.0, 2.0.0.0, 1.1.1.1, 1.1.1.0, 1.1.0.2, 1.1.0.1, 
1.1.0.0, 1.0 (conflict: vcswrapper => mtl==2.2.1/installed-4vs...) 
Backjump limit reached (change with --max-backjumps). 

Also habe ich versucht cabal install leksah --max-backjumps -1 pro Manpage von Kabale und etwa 10 Minuten, nachdem es jetzt ist raubend> 40% der Erinnerung an meine Maschine, so kann ich einfach nicht auf dieser Route weitermachen.

+1

Etwas ist inkonsistent zwischen den Umgebungen, in denen Sie diese Befehle ausführen - Sie sagen, dass 'leksah.sh'' haskell-gi-base> = 0.18 && <0.21' verlangt, aber 'cabal' sagt Ihnen sehr klar, dass es installiert wird 'haskell-gi-base-0.9'. 'cabal install leksah' sollte die richtigen Abhängigkeiten finden - der Versuch, sie nacheinander zu installieren, ist das Falsche. Die 'cabal' Datei, auf die im Fehler verwiesen wird, ist die' cabal' Datei von 'haskell-gi-base-0.9' - diese Version ist wahrscheinlich einfach zu alt, um mit Ihrer Konfiguration erstellt zu werden (cabal 1.20.0.3 ist ziemlich neu). – user2407038

+2

vielleicht hast du mehr Glück mit [stack] (https://www.haskellstack.org/) ... – mb21

+0

@ user2407038 Ich habe ein Update bezüglich deines Vorschlags gepostet. – bjd2385

Antwort

1

Das Data.Proxy Modul wurde in das base Paket in base-4.7.0.0 verschoben, das Teil der ghc-7.6 Serie war. Die haskell-gi-base, die Sie installieren möchten, ist auch ziemlich alt. Ich erwarte, dass es gewählt wurde, weil die neueste Version, die die Versionsbeschränkungen erfüllen konnte, aber dass diese Versionsbeschränkungen falsch sind. Ihre Version von GHC muss älter sein.

Die Lösung ist, Ihre GHC zu aktualisieren und cabal-installieren. Die aktuelle Version von GHC 8.0.2 und die aktuelle Version von cabal-install ist 1.24.0.2. Sie benötigen mindestens Version 1.24 von cabal-install, wenn Sie auf GHC 8 upgraden. Glücklicherweise ist die Minimal Haskell Platform mit einem aktuellen GHC, Cabal-Install und sogar Stack ausgestattet!

Verwandte Themen