# GNU Health/Guía Técnica/Patches y Pachsets

* Índice de la sección «Guía Técnica»
* Instalación
* Actualización
* Patches y Pachsets
* Contribución
* Localización
* Reportes
* Backups y Alta disponibilidad
* Seguridad
* Resolución de problemas
* Base de datos Demo

## Parches & Conjunto de Parches

Desde la versión 2.2.1, se publican periódicamente un serie de parches a las versiones estables de GNU Health (incluso en aquellas con números de versión menor, tal como 1.2.3).
Suponga el siguiente escenario: El centro de salud GNU SOLIDARIO instala la versión 2.6.3. Luego de algunas semanas de correr el servidor en una ambiente de producción, se descubre un bug que afecta el módulo health_services. No es un bug crítico, pero debería ser atendido rápidamente. Mientras tanto, el bug fue reportado y ha sido solucionado y documentado. El administrador del sistema de GNU SOLIDARIO tiene dos opciones: a) Descargar y aplicar el parche individual utilizando la herramienta de administración de parches b) Esperar y aplicar la última versión del conjunto de parches.
Será el contexto lo que determine que opción utilizar, pero la regla general, a menos que se trate de un bug crítico, es utilizar la opción del conjunto de parches.
Algunas ideas generales:
* Los parches pueden ser aplicados sólo a versiones de GNUHealth previamente instaladas. Para instalaciones nuevas, por favor descargar el tarball completo (por ejemplo, gnuhealth-2.6.4.tar.gz). Los scripts suelen ser breves y la instalación es muy rápida en general.
* Los conjuntos de parches son válidos para las versiones menores (2.x.0, 2.x.1, etc)

## Parches vs Conjunto de Parches

Esta sección explica los conceptos generales relacionados con los parches y conjunto de parches y cuando utilizar uno u otro.

### Parches

En líneas generales, un parche es una porción de código que soluciona un programa o uno de sus componentes. En GNUHealth, un parche es un archivo generado en un Changeset de Mercurial. El archivo del parche (diff) modifica secciones específicas del código, sin reemplazar el archivo completo. Esto se realiza mediante el comando Patch. Tal como se mencionó antes, el parche está asociado a un Changeset específico, pero no necesariamente al número de versión del parche mas recinte (el tercer componente de, por ejemplo, 1.2.3).

### Ventajas de los Parches

* Se encuentran disponibles en forma inmediata: Si hay un bug crítico, puede ser emparchado en forma inmediata, sin necesidad de esperar al conjunto de parches
* Son muy especificos: Debido a su alta especificidad, muchas veces Ud. puede aplicar un parche de GNU Health en un sistema en vivo, sin afectar su disponibilidad.

### Desventajas de los Parches

* Requiere de mayores conocimientos técnicos
* Son muy específicos
* Son mas difíciles de manejar cuando se trata de archivos binarios, como por ejemplo Reportes de LibreOffice
* Requiere tener un registro de otros parche que no hayan sido aplicados previamente
La alta especificidad de los parches son su ventaja y desventaja simultáneamente, por lo que esta opción es muy dependiente del operador del sistema.
Nota: Recomendamos evitar utilizar parches a menos que se trate de un bug crítico del sistema que deba ser aplicado en forma inmediata.

### Conjunto de Parches

Los Conjunto de Parches se encuentran en un nivel superior que los parches, ya que manejan cambios en el archivo completo y no sólo en pequeñas porciones. Se entregan empaquetados en el formato. La aplicación de los conjuntos de parches es también selectiva, en el sentido de que sólo una parte del kernel de GNU Health se ve modificado.

### Ventajas de los Conjuntos Parches

* Son específicos
* Pueden ser re-aplicados después de aplicar un parche
* Aplica todos los parches disponibles en un momento dado, incluyendo los no críticos que fueron recolectados en el tiempo
* Facilita el proceso de instalación / actualización
* Vinculado a una versión específica de GNU Health (representado por el número del nivel del conjunto de parches)

### Desventajas de los Conjuntos de Parches

* No son parches inmediatos. Sin embargo, el plazo para la publicación de parches críticos no debería superar las 24 hs.

### Criterios para la publicación de nuevos Conjuntos de Parches

* Bugs marcados como críticos
* Cuestiones de seguridad
* La cantidad de bugs no críticos

### Aplicando los Conjuntos de Parches

* Lea las instrucciones relacionados con el Conjunto de Parches publicado en la lista de correo de Savannah. Dependiendo del conjunto de parches, podría ser necesario actualizar algún módulo del sistema.
* Detenga la instancia GNU Health
* Realice un backup del kernel y de la base de datos (sin importar lo pequeño que sea el parche)
* Ingrese al sistema utilizando la cuenta gnuhealth
* No cambie de directorio. Permanezca en $HOME. Verifique que está en /home/gnuhealth
* Descargue el último parche en su número de versión mayor.menor Por ejemplo, si está en la versión 2.6.x
wget http://ftp.gnu.org/gnu/health/gnuhealth_patchset-2.6.latest.tar.gz
* Descomprima el Conjunto de Parches
tar -xzvf gnuhealth_patchset-2.6.latest.tar.gz
* Reinicie el servidor