====== Sistema de gestión de paquetes ====== El sistema de gestión de paquetes se apoya en tres elementos principales: - los ficheros de paquetes wpk - la herramienta [[waine:tool:wpkg]] - El directorio packages ===== Los ficheros de wpk ===== Un fichero wpk puede contener descripciones ASL, código PHP o cualquier otro tipo de fichero empleado en una instancia de aplicación. Los paquetes además contienen un archivo [[waine:file:meta.xml]] que aporta metainformación sobre el paquete y un par de scripts [[waine:file:preins.sh]] y [[waine:file:postins.sh]] que son ejecutados antes y después de la instalación del paquete respectivamente. También pueden aportar documentación, instrucciones, ejemplos, diagramas, etc. Todo el contenido se comprime en un archivo con formato tgz (tar+gzip). La estructura de un archivo wpk es la siguiente: * **ASL**: contine fragmentos ASL para procesar y agregar al repositorio de interfaces de usuario de la instancia de aplicación. * **files**: contine fragmentos ASL para procesar y agregar al repositorio de interfaces de usuario de la instancia de aplicación. * **meta**: contiene los archivos [[waine:file:meta.xml]], [[waine:file:preins.sh]] y [[waine:file:postins.sh]] * **doc**: contiene los archivos de documentación, ejemplos de uso, etc. ===== La herramienta wpkg ===== [[waine:tool:wpkg]] es una aplicación de uso general para el trabajo con paquetes. Permite listar los componentes instalados, añadir, modificar y eliminar paquetes en una instancia de aplicación. También permite a los desarrolladores crear un paquete vacío, comprimirlo, testearlo y extraer su contenido. Los paquetes pueden ser aplicados tanto en sistemas en desarrollo como en sistemas en producción (en este caso sobre un reposiorio). * En caso de ser aplicados en sistemas en desarrollo, el paquete contendrá diversos componentes que el desarrollador integrará en su proyecto. * Si por el contrario el paquete es aplicado sobre un sistema en producción, la herramienta [[waine:tool:wpkg]] se encargará de procesar y a˜nadir cada uno de los elementos a su repositorio correspondiente de manera que el sistema quede funcional. ===== El directorio packages ===== El directorio packages es un directorio existente en cada instancia de aplicación que contiene información sobre los paquetes instalados en la misma. Este directorio es gestionado por la herramienta [[waine:tool:wpkg]]. Su estructura es la siguiente: * **cache**: contiene una copia de los archivos wpk instalados en sobre la instacia de aplicación * **meta**: contiene los archivos [[waine:file:meta.xml]] de los paquetes instalados en la instacia. Los archivos son renombrados con el nombre del paquete al que pertenecen. * **doc**: por cada paquete instalado contiene un directorio (con el mismo nombre del paquete ) y que contiene los archivos que se incluyeron en el directorio doc del paquete * **bin**: este directorio puede contener dos archivos ejecutables: [[waine:file:actdb]] y [[waine:file:actmdb]]. Estos archivos deben ser creados por el desarrollador de la aplicación y son empleados por la herramienta [[waine:tool:wpkg]] para actuar sobre la base de datos y la metabase de datos respectivamente * **log**: contiene los logs de la instalación de cada paquete