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
Ответы
Ответ 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 самостоятельно.