como remover um pacote cujo script de pós-instalação e pré-remoção falha?

25

Eu tenho um problema com o pacote openqrm.

Como faço para removê-lo?

root@wl183004:/# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? 
Setting up openqrm (4.6-ubuntu1) ...
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 openqrm
E: Sub-process /usr/bin/dpkg returned an error code (1)

root@wl183004:/# apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up openqrm (4.6-ubuntu1) ...
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 openqrm
E: Sub-process /usr/bin/dpkg returned an error code (1)

root@wl183004:/# apt-get remove --purge openqrm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libshadow-ruby1.8 bind9 libopenipmi0 nagios-plugins-basic open-iscsi
  nagios-plugins-standard memcached libupsclient1 collectd-core nagios-images
  bind9utils tftpd-hpa radiusclient1 libdbi0 libphp-adodb collectd libruby
  aoetools facter dhcp3-server open-iscsi-utils liboping0 libmemcached2
  libradius1 libyajl1 nagios-plugins puppet-common puppetmaster
  libopenssl-ruby1.8 libopenssl-ruby libesmtp5 libxmlrpc-ruby
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  openqrm*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 78.2MB disk space will be freed.
Do you want to continue [Y/n]? 
(Reading database ... 313464 files and directories currently installed.)
Removing openqrm ...
.: 32: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--purge):
 subprocess installed pre-removal script returned error exit status 2
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 openqrm
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@wl183004:/# 
Marc Riera
fonte

Respostas:

20

Você pode tentar atualizar o pacote antes de limpá-lo. Em alguns casos, o novo pacote corrigirá o script de remoção ( dpkgfeito para que novos pacotes possam corrigir até os scripts de transição dos pacotes antigos).

Se isso não funcionar, dê uma olhada /var/lib/dpkg/info/openqrm.postinstcomo Kyle sugeriu, localize a linha que falhou, comente e tente limpar novamente. Repita até o sucesso.

ℝaphink
fonte
4
Adicionei a saída 0 ao início do openqrm.prerm. funcionou. obrigado
Marc Riera
mas ... como fazemos isso? "localize a linha que falha, comente"
ahnbizcad
Usando seu editor favorito e sudo
ℝaphink
adicione set -xao script para ver onde ele falha, cf. cyberciti.biz/tips/debugging-shell-script.html
Maxime R.
Eu também tive que editar um /var/lib/dpkg/info/*.prermarquivo para obter um pacote para desinstalar. Que desenho!
pintos
18

O seguinte funcionou para mim:

  • rm -rf /var/lib/dpkg/info/openqrm.*
  • rm -rf / usr / share / openqrm
  • rm -rf / etc / padrão / openqrm
  • rm -rf /etc/init.d/openqrm
  • apt-get purge openqrm
Donnied
fonte
2
isso funcionou! Generalizado, basta substituir "openqrm" por qualquer que seja o nome do seu pacote.
Ahnbizcad 2/15
Isso me ajudou a me livrar de uma apachedsinstalação quebrada , que bloqueou totalmente qualquer aptcomando no meu sistema, obrigado ... poderíamos generalizar um pouco mais pesquisando primeiro todos os locais do pacote sudo find / | grep [package name], removendo-os e depois usando sudo apt-get remove [package name] -purge --auto-remove( não scriptedly, alguns dos resultados podem não ser para ser removido embora ...)
cedbeu
7

Apenas tente tocar no arquivo ausente. Se este for apenas um arquivo ausente, pode ser uma ótima solução.

touch /usr/share/openqrm/etc/openqrm-server.conf

Agora tente remover o pacote com o apt-get ou aptitude.

Fbo
fonte
Isso funcionou - foi finalmente capaz de remover postfix
Darren Newton
2

Veja /var/lib/dpkg/info/openqrm.postinst e veja o que está tentando fazer

Kyle
fonte
-1

Há um post aqui sobre o mesmo tipo de erro (pacote diferente, no entanto). Você já tentou dpkg --force-all?

Charlesbridge
fonte