2011-07-03 18 views
14

¿Cómo puedo generar e instalar documentación para todos los paquetes cabal instalados localmente? Activé el indicador de documentación en ~/.cabal/config, lo que significa que todos los paquetes recién instalados tendrán también documentación generada. ¿Pero cómo generar documentación para todos los paquetes ya instalados?Haskell Cabal regenera la documentación de todos los paquetes instalados

¿Hay alguna forma de cabal install --reinstall de instalar automáticamente todos los paquetes? Y, lo que es más importante, ¿es una buena idea?

Respuesta

4

Si usted tiene una versión reciente-ish de cabal-install (> = 0,10, creo), se puede intentar hacer

$ cabal install --reinstall --upgrade-dependencies world 

Por desgracia, no funcionó en mi caso:

$ cabal install --dry-run --reinstall world 
Resolving dependencies... 
cabal: cannot configure Agda-2.2.10. It requires haskell-src-exts >=1.9.6 && 
<1.10 
For the dependency on haskell-src-exts >=1.9.6 && <1.10 there are these 
packages: haskell-src-exts-1.9.6. However none of them are available. 
haskell-src-exts-1.9.6 was excluded because haskell-src-exts-1.11.1 was 
selected instead 
haskell-src-exts-1.9.6 was excluded because hlint-1.8.12 requires 
haskell-src-exts ==1.11.* 

Si te encuentras con un error como este, puedes intentar editar manualmente el archivo ~/.cabal/world.

+0

¡Eso funcionó! No perfectamente ... Pero casi. No obtuvo todas las dependencias de todos los paquetes y los documentos generados no tienen un índice adecuado o enlaces a las fuentes, pero es una gran mejora sobre no tener ningún documento local en absoluto. ¡Gracias! –

+0

Sí, el archivo mundial solo enumera los paquetes instalados manualmente, por lo que las dependencias instaladas automáticamente no se vuelven a instalar (a menos que haya una nueva versión en Hackage). –

+0

1.10 ??? Tengo 0.10 ... – alternative

-1

Puede intentar algo así en bash.

for pkg in `ghc-pkg list --simple` 
do 
cabal install $pkg --reinstall 
done 

Pero realmente no sé, si es una buena idea.

+6

intentará reinstalar 'ghc',' base', etc. No lo intente;) – Yuras

+1

Puede usar 'ghc-pkg --simple --user' para mostrar solo los paquetes instalados por el usuario. –

3

Tenga en cuenta que cabal install --only-dep --reinstalldoes not work.

Si está utilizando una caja de arena, se puede hacer

cabal sandbox delete 
cabal sandbox init 
cabal install -j --only-dep --enable-documentation 

La opción -j permite que se acumule en paralelo.

Cuestiones relacionadas