2010-11-06 21 views
8

Cabal bağımlılık sorunları yaşıyor sürekli olarak. Gerçekten yorucu. Şimdiye kadar burada, çok şey çalışma almak için çalıştık benim çırpıda yüklemeye çalışıyor: Ben de benzer sorunlar Happstack yüklerken varCabal use (Haskell)

 
$ sudo cabal install snap-server 
Resolving dependencies... 
cabal: cannot configure ListLike-1.1.0. It requires mtl >=1.1.0 && 1.2 
For the dependency on mtl >=1.1.0 && 1.2 there are these packages: 
mtl-1.1.0.0, mtl-1.1.0.1, mtl-1.1.0.2 and mtl-1.1.1.0. However none of them 
are available. 
mtl-1.1.0.0 was excluded because mtl-2.0.0.0 was selected instead 
mtl-1.1.0.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* 
mtl-1.1.0.1 was excluded because mtl-2.0.0.0 was selected instead 
mtl-1.1.0.1 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* 
mtl-1.1.0.2 was excluded because mtl-2.0.0.0 was selected instead 
mtl-1.1.0.2 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* 
mtl-1.1.1.0 was excluded because mtl-2.0.0.0 was selected instead 
mtl-1.1.1.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* 

vb komplo yapmak prosedür nedir ... çalışıyor? Daha önce de denedim:

export PATH=/home/user/.cabal/bin:$PATH 

cevap

7

sorun olduğunu ek bileşeni sunucu 0.2.15 monads-fd üzerinde sınırsız bağımlılık vardır. En yeni sürüm olan monads-fd-0.1.0.3, mtl-2 gerektirir. * Maalesef bu, ListLike'a bağımlılık ile çakışıyor (iteratee aracılığıyla), bu da mtl < 2.0 gerektirir. Bu kısıtlamaların ikisi de eşzamanlı olarak yerine getirilemez, bu yüzden kabile vazgeçer.

cabal install snap-server --constrain="monads-fd=0.1.0.2"'u çalıştırmayı deneyin. Bu, mtl gerektirmeyen monads-fd'nin daha önceki bir sürümünü zorlayacak ve bence her şey düzgün bir şekilde çalışacak.

Çok sayıda paketle ilgili sorun yaşıyorsanız, büyük olasılıkla yeni yüklenen yeni mtl nedeniyledir. Yardımcı olabilecek --constrain="mtl<2" eklemeyi deneyebilirsiniz.

Düzenleyicilere moral: Haskell PVP ve 'u her zaman üst bağımlılık sınırlarını kullanın.

N.B. Mtl-2 (çok yakında yapacağım) ile çalışan yeni bir ListLike yüklüyorsam bile, iteratee üzerindeki üst sınır nedeniyle yeni ListLike seçilemeyeceği için sorununuzu çözmeyecek.

+0

"Yeni bir Listeye yüklüyorsam bile ..., sorununuzu çözmez" Ahlaki: asla üst sınırları kullanmayın. Joke :) Daha kararlı bir şeye, bilgisayar korsanlığına ve HP'ye göre daha az kararlı bir şeye ihtiyacımız var gibi gözüküyor. Arada bir şey var. – Yuras

+1

@Yuras, Katılıyorum (ve yazarken üst sınırların bir çözümü engellediğini fark ettim). Eğer hackage her şeyde üst sınırlara ihtiyaç duyuyorsa, istikrarı iyileştirmek için çok yol kat ederdi. Cabal ve versiyon numaraları ile daha çok çalışıyorum, o kadar eminim ki o autotools doğru var. –

+0

Yikes, cabal, kullanılacak paketler hakkında çok fazla bilgi gerektirir! Bu beni üzüyor :-( – 0atman