De acordo com a documentação do script do mantenedor do pacote Debian , o script de pré-instalação pode ser chamado com o install
ou o upgrade
primeiro argumento:
O
preinst
script pode ser chamado das seguintes maneiras:
new-preinst
instalarnew-preinst
instalar versão antiga nova versãonew-preinst
atualizar versão antiga nova versão
Qual é a diferença entre install old-version new-version
e upgrade old-version new-version
? A primeira forma (apenas install
) parece clara, mas não entendo a diferença entre install
e upgrade
onde os números de versão antigos e novos também são especificados.
Isso é explicado na seção “detalhes” :
preinst
é chamado comupgrade
as versões antiga e nova;rc
nadpkg -l
saída de '),preinst
é chamado cominstall
as versões antiga e nova;preinst
será chamado cominstall
e sem informações de versão.Como
preinst
é executado antes da fase de descompactação,upgrade
indica que uma versão anterior do conteúdo do pacote está disponível, enquantoinstall
indica que nenhuma versão do conteúdo do pacote está presente (além dos arquivos de configuração). Separadamente, se forem fornecidas informações sobre a versão, isso indica que pode haver arquivos de configuração que precisam ser manipulados.Não há muitos cenários em que a diferença entre
upgrade
einstall
seja significativa, mas um que vem à mente são as atualizações que envolvem a exportação de dados. Por exemplo, noupgrade
modo,slapd
exportapreinst
seus bancos de dados ; não pode fazer isso noinstall
modo porque as ferramentas apropriadas não estão presentes.Considerar:
Agora os scripts do mantenedor precisam lidar com esses conffiles, usuários, grupos, etc., embora, estritamente falando, você não esteja atualizando, mas apenas instalando. Você pode ver isso no segundo fluxograma aqui: "Instalando um pacote que foi removido anteriormente, mas não eliminado"