Como os gerenciadores de pacotes “yum” e “dnf” atualizam o software de execução?

3

No sistema operacional Windows, um software precisa ser fechado antes da atualização. Como precisamos reiniciar o Google Chrome para atualizá-lo. Como os gerenciadores de pacotes nos sistemas Linux (especificamente yum & dnf no Fedora como o Linux) atualizam qualquer software quando ele está aberto. Embora os efeitos da versão atualizada só depois de reiniciar o software, mas eu quero saber como os gerenciadores de pacotes atualizam enquanto um software está sendo executado? Alguns arquivos devem ser removidos e substituídos durante a atualização. Como isso é feito enquanto os arquivos estão sendo executados?

    
por Abhik Bose 15.11.2017 / 16:12

1 resposta

2

O bloqueio de arquivos no Windows e no Linux (e em outros sistemas semelhantes ao UNIX) funciona de maneira um pouco diferente. O Windows geralmente impede a modificação em arquivos binários executáveis que estão atualmente mapeados para um processo. É por isso que você não pode atualizar o software enquanto um programa está em execução, porque o bloqueio impede a modificação / substituição desses binários.

No Linux, o bloqueio geralmente não é usado ou é cooperativo (não aplicado). O bloqueio obrigatório existe no Linux, mas não é confiável . Se um arquivo executável binário mapeado para um processo em execução for modificado ou excluído (durante uma atualização de software), o sistema de arquivos não recuperará o espaço em disco mapeado até que o último identificador seja liberado. Dessa forma, o processo já em execução ainda pode acessar as páginas mapeadas para arquivos antigos.

    
por 15.11.2017 / 16:59