GNU Health/Correções e Correções Cumulativas
Sobre Correções Cumulativa GNU Health
[editar | editar código-fonte]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:
- Fazer o download e aplicar a correção individual (patch) usando a ferramenta de correção.
- 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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]- Erros marcados como críticos/bloqueadores
- Questões importantes de segurança
- O número de bugs não críticos
Aplicação de Correções Cumulativas
[editar | editar código-fonte]
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 | editar código-fonte]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.
- 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.