Вопрос

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

У меня есть подобные проблемы, устанавливающие Happ Stack и т. Д. Что такое процедура, чтобы сделать Cabal ... работать? Я уже пробовал:

export PATH=/home/user/.cabal/bin:$PATH
Это было полезно?

Решение

Проблема в том, что Snap-Server-0.2.15 имеет неограниченную зависимость от Monads-FD. Самая последняя версия, Monads-FD-0.1.0.3, требует MTL-2.* К сожалению, это противоречит зависимости от списка (через Itearte), который требует MTL <2.0. Обе эти ограничения не могут быть выполнены одновременно, поэтому Кабал сдается.

Попробуйте бежать cabal install snap-server --constrain="monads-fd=0.1.0.2". Отказ Это заставит более раннюю версию Monads-FD, которая не требует MTL, и я думаю, что все будет работать должным образом.

Если у вас проблемы с большим количеством пакетов, это, вероятно, из-за нового mtl Это было недавно загружено. Вы можете попробовать добавить --constrain="mtl<2", что может помочь.

Мораль для сопровождающих: следуйте PVP Haskell и всегда Используйте границы верхней зависимости.

NB, даже если я загружу новый список, который работает с MTL-2 (который я сделаю очень скоро), что не исправит вашу проблему, потому что новый список не будет выбран из-за верхней границы по итерации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top