¿Cómo eliminar un paquete que falla después de la instalación y la secuencia de comandos previa a la eliminación?

25

Tengo un problema con el paquete openqrm.

¿Cómo lo elimino?

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
fuente

Respuestas:

20

Puede intentar actualizar el paquete antes de purgarlo. En algunos casos, el nuevo paquete arreglará el script de eliminación ( dpkgestá hecho para que los nuevos paquetes puedan arreglar incluso los scripts de transición de paquetes antiguos).

Si eso no funciona, mire /var/lib/dpkg/info/openqrm.postinstcomo Kyle sugirió, localice la línea que falla, comente e intente purgar nuevamente. Repita hasta el éxito.

Phaphink
fuente
44
He agregado la salida 0 al comienzo de openqrm.prerm. funcionó. gracias
Marc Riera
¿Pero cómo hacemos esto? "localice la línea que falla,
coméntela
Usando su editor y sudo favoritos
phaphink
agregue set -xal script para ver dónde falla, cf. cyberciti.biz/tips/debugging-shell-script.html
Maxime R.
También tuve que editar un /var/lib/dpkg/info/*.prermarchivo para obtener un paquete para desinstalar. ¡Qué diseño!
pollitos
18

Lo siguiente funcionó para mí:

  • rm -rf /var/lib/dpkg/info/openqrm.*
  • rm -rf / usr / share / openqrm
  • rm -rf / etc / default / openqrm
  • rm -rf /etc/init.d/openqrm
  • apt-get purge openqrm
Donnied
fuente
2
esto funcionó! Generalizado, simplemente reemplace "openqrm" con el nombre de su paquete.
ahnbizcad
Esto me ayudó a deshacerme de una apachedsinstalación dañada , que bloqueó totalmente cualquier aptcomando en mi sistema, gracias ... podríamos generalizar un poco más al buscar primero todas las ubicaciones del paquete sudo find / | grep [package name], luego eliminarlas todas y luego usar sudo apt-get remove [package name] -purge --auto-remove( sin guión, algunos de los resultados podrían no eliminarse aunque ...)
cedbeu
7

Solo intenta tocar el archivo que falta. Si este es solo un archivo faltante, podría ser una gran solución.

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

Ahora intente eliminar el paquete con apt-get o aptitude.

Fbo
fuente
Esto funcionó - finalmente pudo eliminar postfix
Darren Newton
2

Mire /var/lib/dpkg/info/openqrm.postinst y vea lo que está tratando de hacer.

Kyle
fuente
-1

Aquí hay una publicación sobre el mismo tipo de error (paquete diferente, sin embargo). ¿Ya lo has intentado dpkg --force-all?

puente de Charles
fuente