2011-09-11 11 views
7

Aquí está el error completo:Cabal instalar error de dependencia: "* base- fue excluido debido al alto nivel -cualquier base de la dependencia"

$ cabal install hakyll 
Resolving dependencies... 
cabal: cannot configure snap-server-0.5.3.1. It requires base >=4.3 && <5 
For the dependency on base >=4.3 && <5 there are these packages: base-4.3.0.0, 
base-4.3.1.0 and base-4.4.0.0. However none of them are available. 
base-4.3.0.0 was excluded because of the top level dependency base -any 
base-4.3.1.0 was excluded because of the top level dependency base -any 
base-4.4.0.0 was excluded because of the top level dependency base -any 
$ 

¿Cómo se pueden excluir versiones de base-* debido a alguna regla que parece decir que cualquier versión está bien?

+0

creo que he dado antes. Simplemente una interpretación de lo que he leído en el mensaje de error: el paquete de nivel superior podría insistir en que funciona con _any_ versión de base, mientras que el subpaquete agrega restricciones, violando esa garantía. Quizás las tres últimas líneas sean engañosas y generadas por otro código de informe de error. – gatoatigrado

+0

Además, he tenido más suerte con 'cabal-dev'. Vea una pregunta/respuesta relevante aquí: http://stackoverflow.com/questions/6920967/how-can-one-register-a-package-build-with-cabal-dev – gatoatigrado

+0

¿Qué versión de GHC tiene instalada? ? Parece que Snap necesita una versión más alta de GHC ya que no puedes instalar una versión de base diferente a la que se envía con GHC. –

Respuesta

3

Cada vez que me he encontrado con este problema, ha sido porque he hecho todas las siguientes cosas:

  1. descargado un paquete desde Hackage con dependencias obsoletas.
  2. Se actualizaron las dependencias y se observó que funcionaba bien (o se pasó el tiempo solucionando los errores que ocurrieron).
  3. Ran cabal install con las nuevas dependencias.
  4. No actualizó el número de versión.

Ese último es el verdadero pateador. cabal install supondrá que, si conoce el par de versiones/dependencias del paquete de Hackage, ese par es canónico. Si desea que conozca las dependencias actualizadas, cambie el número de versión del paquete antes de realizar la instalación.

Deberá verificar que lo haya hecho correctamente para cualquiera de las dependencias de hakyll que haya instalado manualmente.

3

Se metió en el mismo problema. Resuelto.

Fue una instalación limpia de Haskell. Pero fue una instalación limpia de haskell del administrador de paquetes de linux flavor (en este caso ubuntu) que tenía versiones anteriores.

Tuve que eliminar los paquetes anteriores & descargar la fuente & compilar & instalarlo.

obtener las últimas fuentes de plataforma a partir de:
http://hackage.haskell.org/platform/linux.html

obtener las fuentes de GHC que se requieren para la plataforma. http://haskell.org/ghc/download_ghc_7_0_3#distros

un ejemplo para hacer esto: http://sporkcode.wordpress.com/2009/07/11/installing-the-haskell-platform-in-ubuntu/

Cuestiones relacionadas