Tema: dpkg
-
Códigos de saída de apt-get, dpkg, dnf e zypper: quando 100 significa atualizações disponíveis, e não falha
O apt-get usa uma divisão simples: 0 para sucesso e 100 para erro. O dpkg distingue uma verificação que falhou (1) de um erro fatal de uso ou de sistema (2). No check-update do dnf, 100 indica que HÁ atualizações disponíveis, e não um erro. O zypper define toda uma faixa, de 100 a 107, de códigos informativos (que não são erros), como a necessidade de reiniciar, embora 104 (pacote não encontrado) e 105 (interrompido) signifiquem que a ação não foi executada. Tratar qualquer um deles como um simples booleano de sucesso ou falha faz perder informação relevante.
-
Verificar a integridade dos pacotes instalados no Debian e no Ubuntu com debsums e dpkg --verify
O debsums compara os arquivos instalados com as somas MD5 registradas na construção do pacote; o dpkg --verify (desde o dpkg 1.17.2) compara metadados registrados no próprio banco de dados do dpkg; e o dpkg -S/-L respondem a "qual pacote é dono deste arquivo" e "quais arquivos este pacote instalou", antes de decidir se vale a pena reinstalá-lo.
-
Executar apt e dpkg de forma não interativa no Debian e no Ubuntu sem travar em prompts
Uma execução de apt-get ou dpkg em script pode parar numa pergunta do debconf, numa pergunta sobre arquivo de configuração modificado ou num lock do dpkg retido. Definir DEBIAN_FRONTEND, usar as opções confold/confdef adequadas e pré-configurar as respostas do debconf faz com que a instalação termine ou falhe de forma explícita.
Legível por máquina: JSON