Como remover a força quando o script pós-instalação sempre falha

37

Eu tenho um pacote personalizado instalado no meu Ubuntu 10.10 e, tentando removê-lo, obtive:

$ sudo dpkg -r package
sub-process script post-installation installed returne an error state 127

(a mensagem retornada do comando foi traduzida do português (br).

Portanto, observei que no script de instalação deste pacote, o que ele fez foi criar uma entrada na minha inicialização, criar uma pasta em / opt e criar um usuário.

Eu removi tudo o que ele criou. Mas agora, eu só quero removê-lo da lista dpkg, porque quero tornar meu linux como se nunca tivesse instalado este pacote.

Como posso fazer isso?

Gabriel L. Oliveira
fonte

Respostas:

47

Pode ser necessário remover manualmente o pacote usando:

sudo dpkg --purge --force-all package

Substitua packagepelo nome do pacote.

Observe: é recomendável relatar um erro se o pacote não for seu ou se você não souber o que o script faz.

Braiam
fonte
1
@jcomeau_ictx é claro ... a questão é sobre pós-remoção, não sobre pré.
Braiam
30

a tentativa de remover o xmail com dpkg --purge --force-all xmailfalha porque o script de pré-remoção estava saindo com uma falha ao tentar parar o daemon do xmail. Encontrei a solução aqui: https://serverfault.com/questions/179570/how-to-remove-a-package-which-post-installation-and-pre-removal-script-fails

especificamente, editei /var/lib/dpkg/info/xmail.prerm e mudei || exit $!para|| true

jcomeau_ictx
fonte
1
Eu não entendo o voto negativo. a outra solução não cobre todos os casos, e isso fornece alguma ajuda para o restante.
Javeau_ictx
1
Se eu tenho que adivinhar, você responde "falhou porque o script de pré-remoção", esta pergunta é sobre o script "pós-instalação". Você não está respondendo à pergunta atualmente.
Braiam
2
Eu tive um problema com o script de pré-remoção e isso me ajudou.
Bogdan Calmac
2
Como se pode esperar, se a edição de *.prermarquivos é muito entediante, você também pode excluí-los - o processo de desinstalação funciona com eles ausentes
Paulius Šukys
obrigado, não sabia disso! isso vale uma resposta separada, se você quiser fazer isso.
precisa saber é o seguinte