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 .