سؤال

Cabal لديه مشاكل التبعية باستمرار. إنه متعب حقًا. حتى الآن حاولت أن أعمل على عمل العديد من الأشياء ، وهنا أحاول تثبيت SNAP:

$ 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.*

لدي مشاكل مماثلة في تثبيت Happstack ، وما إلى ذلك. ما هو الإجراء لجعل cabal ... العمل؟ لقد حاولت بالفعل:

export PATH=/home/user/.cabal/bin:$PATH
هل كانت مفيدة؟

المحلول

المشكلة هي أن Snap-Server-0.2.15 لديه تبعية غير محدودة على Monads-FD. أحدث إصدار ، Monads-FD-0.1.0.3 ، يتطلب MTL-2. لا يمكن الوفاء بكل من هذه القيود في وقت واحد ، لذلك يستسلم كابال.

حاول الجري cabal install snap-server --constrain="monads-fd=0.1.0.2". سيؤدي ذلك إلى إجبار نسخة سابقة من Monads-FD التي لا تتطلب MTL ، وأعتقد أن كل شيء سيعمل بشكل صحيح.

إذا كنت تواجه مشاكل مع الكثير من الحزم ، فربما يكون ذلك بسبب الجديد mtl تم تحميل ذلك مؤخرًا. يمكنك محاولة إضافة --constrain="mtl<2", ، والتي قد تساعد.

أخلاقي للمحافظين: اتبع هاسكل PVP و دائماً استخدام حدود التبعية العلوية.

NB حتى إذا قمت بتحميل قائمة جديدة تشبه القائمة التي تعمل مع MTL-2 (والتي سأفعلها قريبًا جدًا) ، فإن هذا لن يصلح مشكلتك لأنه لن يتم تحديد القائمة الجديدة بسبب الحد الأعلى على التكرار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top