GNU Health/Correções e Correções Cumulativas

Sobre Correções Cumulativa GNU Health editar

Desde a versão 2.2.1, as correções serão lançadas para as versões estáveis do GNU Health ​​(aqueles com número par menor, por exemplo, 1.2.3).

Suponha o seguinte cenário: O centro de saúde HOSPITAL GNU SOLIDÁRIO instala a versão 2.2.0. Após algumas semanas de executar o servidor no ambiente de produção, um erro é descoberto que afeta o módulo health_service. Não é um bug crítico mas deve ser tratado em breve.

Enquanto isso o erro foi relatado, logo corrigido e documentado. O administrador do sistema no Hospital GNU SOLIDÁRIO tem duas opções:

  1. Fazer o download e aplicar a correção individual (patch) usando a ferramenta de correção.
  2. Esperar e aplicar a última correção cumulativa (patchset).

O contexto determinará qual o método a utilizar, mas uma regra geral é: a menos que você esteja em um cenário de uma falha crítica, você deve usar a abordagem de correção cumulativa (patchset).

Algumas ideias gerais:

  • As correções (patches) e as correções cumulativas (patchesets) não necessitam fazer toda a instalação novamente. Os scripts são geralmente pequenos e o tempo de instalação é muito curto no geral.
  • As correções individuais (patches) são válidas para números menores (por exemplo, 2.0.x, 2.2.x).

Sempre que uma correção cumulativas (patchset) é gerada, uma nova versão GNU Health é lançada, com o número de nível de correção (patchlevel) da correção cumulativa (patchset).

Correções Individuais (patches) vs Correções Cumulativa (patchsets) editar

Esta seção discute os conceitos gerais por trás de uma correção individual e um conjunto de correções, e quando usar um ou o outro.

Correções editar

De um modo geral, um patch é uma porção de código que corrige um programa ou seus componentes. No GNU Health, um patch é um "arquivo de correção" gerado no Mercurial um com um changeset específico (entenda aqui). O arquivo de correção patch (diff) modifica seções específicas do código, não substituindo o arquivo inteiro. Ela é aplicada com o comando patch. Como afirmado anteriormente, o patch está associado a um conjunto de alterações específicas, mas não necessriamente ao número mais recente do nível de correção (terceiro componente do número de versão, como por exemplo, 1.2.3).

Prós das correções (patches):

  • Estão disponíveis de imediato: Se é um bug crítico, você pode corrigí-lo imediatamente, sem necessidade de esperar pela correção cumulativa (patchset).
  • É muito específica: devido à esta alta especificidade, muitas vezes você pode aplicar uma correção (patch) no GNU Health com um sistema em execução, não afetando a disponibilidade.

Contras das correções (patches):

  • Requer conhecimento mais técnico
  • Muito específica
  • Mais complicado quando se lida com arquivos binários, como relatórios do LibreOffice
  • Necessidade de manter o controle de outras correções (patches) não aplicadas

A alta especificidade da correção (patch) faz com que seja um pré e um contra. Por isso é bastante dependente do operador. Nós recomendamos evitar o uso de correções, a menos que seja um bug crítico e necessite ser aplicado imediatamente.

Correções Cumulativas (patchsets) editar

As correções cumulativas (patchsets) atuam em um nível mais elevado do que correções individuas (patches), lidando com arquivos inteiros e não pedaços de código. Eles são empacotados sob a forma de um arquivo tar.

Aplicar uma correção cumulativa (patchset) também é uma operação seletiva no sentido de que apenas uma parte do núcleo GNU Health é modificado.

Prós das correções cumulativas (patchesets):

  • Específica
  • Pode ser reaplicada após uma correção
  • Aplica-se todas as correções nesse espaço de tempo, incluindo correções não críticas que foram coletadas ao longo do tempo
  • Instalação periódica mais fácil/processos de atualizações
  • Ligado a uma versão específica do GNU Health (o número do nível de correção)

Contras das correções cumulativas:

  • Não é tão imediata como as correções individuais (patches). Embora o tempo para as correções críticas não devem exceder 24 horas.

Critérios para Lançamento de Nova Correção Cumulativa (patchset) editar

  1. Erros marcados como críticos/bloqueadores
  2. Questões importantes de segurança
  3. O número de bugs não críticos

Aplicação de Correções Cumulativas editar


  Esta seção se aplica à versão 3.0 do GNU Health.


Desde GNU Health 3.0, temos uma nova ferramenta, o Centro de Controle GNU Health. Ele facilita as tarefas de administração comuns, tais como backups ou atualizações do sistema. Para verificar o status do kernel e dos módulos do Tryton e do GNU Health, bem como para manter seu sistema atualizado, por favor visite a seção O Centro de Controle do GNU Health.

Ir para O Centro de Controle do GNU Health para a documentação sobre como instalar as correções cumulativas (patchsets).

Aplicação Manual de Correções Cumulativas (sem suporte) editar

O seguinte método permite que você aplique o conjunto de correções em uma instalação padrão GNU Health, sem usar a ferramenta oficial (gnuhealth-control). A instalação manual não verifica as últimas atualizações do Tryton. É mais complicado e não deve ser utilizado! Por favor, use O Centro de Controle do GNU Health se você não sabe o que está fazendo.

  O GNU Health não suporta esse método!


  • Leia as instruções relacionadas com o conjunto de atualizações cumulativas (patchset) em Savannah. Dependendo da correção (patch) você precisará atualizar o(s) módulo(s).
  • Pare a instância do GNU Health.
  • Faça um backup do seu kernel e banco de dados (sempre, não importa o quão pequena é a correção).
  • Faça o login usando a conta gnuhealth.
  • Não altere os diretórios. mantenha-se no seu $HOME. Verifique se você está no /home/gnuhealth.
  • Faça o download do mais recente conjunto de correções cumulativas (patchset) para o seu número majoritário.minoritário. Por exemplo, se você estiver na versão 3.0.x:
 wget http://ftp.gnu.org/gnu/health/gnuhealth_patchset-3.0.latest.tar.gz
  • Descompacte o conjunto de correções cumulativas (patchset):
 tar -xzvf gnuhealth_patchset-3.0.latest.tar.gz
  • Reinicie o servidor.