2012-04-02 11 views
5

el directorio fuente del proyecto Snap (dist eliminación) hace la siguiente denuncia:Haskell Snap: implementación de aplicaciones y dependencias de tiempo de ejecución de limpieza

A web handler threw an exception. Details: 
GHC error: can't find a package database at dist/package.conf.inplace 

lo tanto, si se limpia el directorio de origen deja de funcionar? ¿Esto solo ocurre si compilo con la bandera de desarrollo?

Esto me lleva a la cuestión de la implementación instantánea de la aplicación. ¿Qué es lo que realmente rsync al servidor y cuáles son las dependencias de tiempo de ejecución? Yo, por supuesto, no quiero instalar toda la plataforma haskell en el servidor de implementación. Todo lo que necesito en el servidor es el ejecutable del proyecto y los archivos estáticos como * .tpl, * .css, etc. ¿Es esto correcto?

Veo dos maneras de implementar la aplicación: rsync el ejecutable y sus dependencias o crear un tarball de distribución binaria y cambiarlo al servidor. ¿Cuál es la práctica común?

¿Qué archivos exactamente necesito incluir en el script binario tarball o rsync para satisfacer todas las dependencias de tiempo de ejecución?

Gracias

Respuesta

3

En primer lugar, sí, eso es sólo el resultado de usar el modo de desarrollo. Utiliza todo tipo de artefactos de su entorno de compilación. (Esta es la única forma en que puede garantizar que duplica correctamente su entorno de compilación al realizar una recarga dinámica). Si los elimina, dejará de funcionar.

Pero en el modo de producción, los recursos binarios y estáticos son todo lo que necesita. Bueno, y las bibliotecas dinámicas en las que GHC vincula el ejecutable. Esto es principalmente material estándar como libc. El único que a veces falta en las instalaciones estándar de Linux es libgmp. Por supuesto, si está utilizando cualquier código FFI que se una a otras bibliotecas dinámicas, deberá asegurarse de que esas librerías también estén cubiertas.

+0

Gracias. Pensé que sería algo relacionado con el modo de desarrollo. –

Cuestiones relacionadas