comment supprimer un package dont le script de post-installation et de pré-suppression échoue?

25

J'ai un problème avec le paquet openqrm.

Comment puis-je le supprimer?

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
la source

Réponses:

20

Vous pouvez essayer de mettre à niveau le package avant de le purger. Dans certains cas, le nouveau package corrige le script de suppression ( dpkgest conçu pour que les nouveaux packages puissent même corriger les scripts de transition des anciens packages).

Si cela ne fonctionne pas, regardez /var/lib/dpkg/info/openqrm.postinstcomme l'a suggéré Kyle, localisez la ligne qui échoue, commentez-la et essayez à nouveau de purger. Répétez jusqu'à succès.

ℝaphink
la source
4
J'ai ajouté la sortie 0 au début de openqrm.prerm. ça a marché. merci
Marc Riera
mais ... comment on fait ça? "localisez la ligne qui échoue, commentez-la"
ahnbizcad
Utilisation de votre éditeur et sudo
préférés
ajouter set -xau script pour voir où il échoue, cf. cyberciti.biz/tips/debugging-shell-script.html
Maxime R.
J'ai également dû modifier un /var/lib/dpkg/info/*.prermfichier pour obtenir un package à désinstaller. Quel design!
poussins
18

Ce qui suit a fonctionné pour moi:

  • 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
la source
2
cela a fonctionné! Généralisé, remplacez simplement "openqrm" par le nom de votre package.
ahnbizcad
Cela m'a aidé à me débarrasser d'une apachedsinstallation cassée , qui bloquait totalement toute aptcommande sur mon système, merci ... nous pourrions généraliser un peu plus en recherchant d'abord tous les emplacements du package avec sudo find / | grep [package name], puis en les supprimant tous, puis en utilisant sudo apt-get remove [package name] -purge --auto-remove( pas par script, certains résultats pourraient ne pas être supprimés cependant ...)
cedbeu
7

Essayez simplement de toucher le fichier manquant. S'il ne s'agit que d'un fichier manquant, cela pourrait être une excellente solution de contournement.

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

Essayez maintenant de supprimer le paquet avec apt-get ou aptitude.

Fbo
la source
Cela a fonctionné - a finalement été en mesure de supprimer le suffixe
Darren Newton
2

Regardez /var/lib/dpkg/info/openqrm.postinst et voyez ce qu'il essaie de faire

Kyle
la source
-1

Il y a un article ici sur le même type d'erreur (cependant, un package différent). Avez-vous déjà essayé dpkg --force-all?

Le pont Charles
la source