Processo de instalação transacional como o instalador do Windows no Unix / Linux

2

Existe algum processo de instalação transacional como o instalador do Windows no Unix / Linux?

Scripts de instalação como Makefile ou gerenciador de pacotes (como deb) geralmente copiam arquivos diretamente para sobrescrever arquivos existentes.

    
por linquize 07.06.2012 / 10:45

2 respostas

2

Eu não sei nada sobre as propriedades das ferramentas de instalação do Windows, mas dê uma olhada no gerenciador de pacotes Nix ( e a distribuição NixOS GNU / Linux construída em torno dele. Ele possui atualizações atômicas, já que não substitui nada antigo.

Outra forma de usar o suporte a snapshots do sistema de arquivos, por exemplo, como yum with btrfs snapshots (também snapper no OpenSUSE; dpkg pode ter pre / post-actions, também, então isso poderia ser feito com isso também, eu suponho).

Editar Usando instantâneos do sistema de arquivos, ./configure && make && make install é um tipo de transação também ...

    
por 07.06.2012 / 12:21
1

Os gerenciadores de pacotes típicos cuidam para garantir que um pacote seja instalado ou não instalado. Geralmente, há um período de transição durante o qual a versão antiga ainda está instalada e os novos arquivos já estão descompactados, mas sob nomes diferentes. Se o sistema falhar durante o período de transição, é muito provável que o software permaneça utilizável; o comando de instalação precisa ser retomado para concluir a instalação. Há uma janela de tempo durante a qual alguns dos novos arquivos já estão no lugar e alguns dos arquivos antigos ainda estão no lugar, mas é muito pequeno.

Por outro lado, se houver um erro de instalação, dependendo de quando o erro é detectado, o programa pode ter mudado para a nova versão, mesmo que a nova versão esteja inutilizável. Isso é inevitável até certo ponto: talvez você só descubra que a nova versão está inutilizável porque você inicia o programa e abre seus arquivos existentes, mas não os interpreta corretamente. O que a maioria dos gerenciadores de pacotes Linux não tem é uma maneira fácil de reverter uma atualização: normalmente, você precisa baixar manualmente a versão antiga do pacote e forçar sua instalação.

Quando você instala o software compilado da origem, com um makefile ou equivalente, você deve instalar o software em seu próprio diretório. Instale cada versão em seu próprio diretório e teste a nova versão antes de remover a antiga. O programa é imediatamente utilizável a partir de seu diretório de instalação, portanto, não há alternância entre a versão antiga e a nova: basta executar a nova versão. Use Stow ou XStow para criar links simbólicos em uma hierarquia comum, para que você possa ter executáveis em PATH e assim por diante; consulte Como acompanhar os programas .

    
por 08.06.2012 / 02:06