Подтвердить что ты не робот

Haskell Cabal: как игнорировать зависимости

Я пытаюсь установить пакет (nymphaea, как это бывает). Это зависит от более ранней версии базы, чем у меня. Я не хочу понижать базовые библиотеки, поэтому я хотел бы попытаться просто игнорировать эту зависимость и посмотреть, как все идет.

Есть ли способ сказать кабалу пропустить конкретную зависимость?

Обновление: после того, как я отредактировал файл cabal, что мне с ним делать? Насколько я могу судить, у Cabal нет очевидного способа указать его в файле и нигде, где я могу вручную поместить файлы кэба.

[Как показано ниже, я, видимо, должен просто вызвать cabal install в каталоге, содержащем отредактированный файл кабала]

Обновление 2: К сожалению, cabal дает мне странную ошибку в отношении требуемых версий пакета, которые у меня есть:

$ cabal install -v --upgrade-dependencies time
Reading available packages...
Resolving dependencies...
In order, the following would be installed:
time-1.2.0.5 (new version)
Extracting
C:\Users\Marcin\AppData\Roaming\cabal\packages\hackage.haskell.org\time\1.2.0.5\time-1.2.0.5.tar.gz
to C:\Users\Marcin\time-1.2.0.54736...
Creating C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup (and its
parents)
C:\Program Files (x86)\Haskell Platform\2011.2.0.1\bin\ghc.exe --make C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\Setu
p.hs -o C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup\setup.exe -odir C:\Users\Marcin\time-1.2.0.54736\time-1
.2.0.5\dist\setup -hidir C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup -i -iC:\Users\Marcin\time-1.2.0.54736\
time-1.2.0.5 -package Cabal-1.10.1.0
<command line>: cannot satisfy -package Cabal-1.10.1.0:
    Cabal-1.10.1.0-55f781465ee9f32289755ad706c71f0f is unusable due to missing or recursive dependencies:
      directory-1.1.0.0-3a2367d72569467a8af8a231656ff1b8 process-1.0.1.5-b3dded8e54a2e13d22af410bdcfafff4
    (use -v for more information)
World file is already up to date.
cabal.exe: Error: some packages failed to install:
time-1.2.0.5 failed during the configure step. The exception was:
ExitFailure 1
4b9b3361

Ответ 1

Чтобы следить за комментариями дона, ответьте:

Сначала возьмите пакет из Hackage.

$ cabal unpack nymphaea

Затем отредактируйте файл .cabal и измените base <= 4.1.0.0 на base > 3 && < 5.

$ cd nymphaea-0.3
$ vim nymphaea.cabal

Теперь попробуйте установить его.

$ cabal install

Я получил его для работы с этим изменением с использованием Haskell Platform 2011.2.0.1 на Ubuntu Natty после установки необходимых пакетов Debian.

Ответ 2

Вы должны отредактировать файл .cabal, связанный с пакетом, и удалить любые ограничения на базе, которую видите. Измените, например,

base < 3

к

base >= 3 && < 5

И посмотрим, скомпилируется ли он. Если это сработает, вы можете повредить версию и сообщить об этом сопровождающему. Если они не отвечают, вы можете загрузить исправленную версию в Hackage самостоятельно.