mac - haskell platform
Haskell Cabal: cómo ignorar las dependencias (2)
Debe editar el archivo .cabal asociado con el paquete y eliminar las restricciones en la base que ve. Cambiar, por ejemplo,
base < 3
a
base >= 3 && < 5
Y mira si compila. Si funciona, podrías cambiar la versión y avisar al responsable. Si no responden, puede cargar la versión fija en Hackage usted mismo.
Estoy tratando de instalar un paquete (nymphaea como sucede). Esto depende de una versión anterior de la base que la que tengo. No estoy interesado en degradar mis bibliotecas base, así que me gustaría tratar de ignorar esa dependencia y ver cómo van las cosas.
¿Hay alguna manera de decirle a él que se pierda una dependencia en particular?
Actualización: Después de editar el archivo cabal, ¿qué hago con él? Cabal no tiene una manera obvia de apuntar a un archivo, ni a ningún lado puedo manualmente poner archivos cabal, por lo que puedo ver.
[Como en la parte de abajo, aparentemente debería invocar la cabal install
en un directorio que contenga el archivo cabal editado]
Actualización 2: Desafortunadamente, Cabal me da un extraño error acerca de las versiones de paquetes que se requieren, que parece que tengo:
$ 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
Para dar seguimiento a los comentarios a la respuesta de Don:
Primero, toma el paquete de Hackage.
$ cabal unpack nymphaea
Luego edite el archivo .cabal y cambie la base <= 4.1.0.0
a base > 3 && < 5
.
$ cd nymphaea-0.3
$ vim nymphaea.cabal
Ahora, intenta instalarlo.
$ cabal install
Lo conseguí para trabajar con este cambio utilizando Haskell Platform 2011.2.0.1 en Ubuntu Natty después de instalar los paquetes necesarios de Debian.