Como a atomicidade yum é garantida?

3

Os instaladores mudam muitos arquivos do sistema. O sistema pode se tornar não inicializável se algo falhar durante as atualizações de software. Ainda assim, é quase impossível assegurar a atomicidade de operações simples de gravação de arquivo único. / a> Como tudo isso é resolvido em instaladores unix? Eles são dependentes do sistema de arquivos?

    
por Val 18.05.2014 / 12:42

3 respostas

0

yum depende do rpm para fazer a transação ... o rpm não é atômico. História ou yum-complete-transaction tentam fazer o melhor que podem, após o fato.

Você também pode usar os recursos de instantâneo do LVM em versões recentes do yum e, em seguida, reverter o dispositivo de bloco inteiro se houver algum problema. Mas você precisa fazer a reversão real usando um ambiente LVM inicializável externo (porque o yum / rpm / glibc pode ser todo lavado até esse ponto).

Se você precisa de garantias atômicas, então você não pode usar diretamente o rpm diretamente (por exemplo, você ostree, 0install, ou em camadas de múltiplos ambientes de inicialização).

    
por 19.05.2014 / 22:11
3

yum 3.2.25 ou posterior traz um comando histórico para examinar, concluir ou reverter transações. As informações do histórico estão em / var / lib / yum / history . A ferramenta yum-complete-transaction pode ser usada após uma falha ou falha de energia para concluir transações ou simplesmente descartar as que foram canceladas, apagando as informações registradas em diário / var / lib / yum / transaction-all e / var / lib / yum / transaction-done .

UPDATE

A atomicidade é baseada na capacidade de um banco de dados Sqlite de fornecer a ilusão de atomicidade. Uma excelente discussão sobre essas técnicas pode ser encontrada em um whitepaper intitulado Atomic Commit in SQLite .

    
por 18.05.2014 / 14:46
1

Na verdade, atualizações atômicas são um problema; yum (e apt, pacman, etc) não são atômicos. Felizmente, as pessoas estão experimentando soluções. Veja rpm-ostree e Upgrades atômicos do CoreOS .

    
por 18.05.2014 / 23:22