Comment forcer la suppression d'un package si le script de suppression de dpkg échoue?

16

J'essaie de supprimer un package dans lequel j'ai supprimé le /etc/init.d/disco-masterfichier (dans une tentative de suppression manuelle du package). Je souhaite supprimer le disco-masterpackage. Comment dois-je procéder maintenant?

C'est ce qui se passe quand je le fais sudo apt-get remove disco-master:

removing disco-master ...
invoke-rc.d: unknown initscript, /etc/init.d/disco-master not found.
dpkg: error processing disco-master (--remove):
 subprocess installed pre-removal script returned error exit status 100
Errors were encountered while processing:
 disco-master
E: Sub-process /usr/bin/dpkg returned an error code (1)

Quand je le fais, sudo apt-get install --reinstall disco-masterj'obtiens ce qui suit:

You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 disco-master : Depends: disco-node (= 0.4.2+nmu1) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Quand sudo apt-get -f installj'obtiens, j'obtiens ceci:

Unpacking disco-node (from .../disco-node_0.4.2+nmu1_amd64.deb) ...
dpkg: error processing /var/cache/apt/archives/disco-node_0.4.2+nmu1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/disco/master/ebin/disco.app', which is also in package disco-master 0.4.1
No apport report written because MaxReports is reached already
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/disco-node_0.4.2+nmu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Lorsque je cours, sudo apt-get remove disco-nodej'obtiens ce qui suit:

Package disco-node is not installed, so not removed
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 disco-master : Depends: disco-node (= 0.4.1) but it is not going to be installed
                Depends: python-disco (= 0.4.1) but 0.4.2+nmu1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Quand je l'ai fait, sudo dpkg -P --force-all disco-masterj'ai eu:

Removing disco-master ...
invoke-rc.d: unknown initscript, /etc/init.d/disco-master not found.
dpkg: error processing disco-master (--purge):
 subprocess installed pre-removal script returned error exit status 100
Errors were encountered while processing:
 disco-master
fodon
la source
3
Essayez de courir sudo dpkg -P --force-all disco-master.
netcoder
est-ce que ... annexé à la question.
fodon

Réponses:

18

Créez un faux script pour tromper dpkg:

sudo nano /etc/init.d/disco-master

Saisissez les informations suivantes:

#!/bin/bash
exit 0

Enregistrez le fichier, définissez l'autorisation d'exécution ( sudo chmod 755 /etc/init.d/disco-master) et réessayez sudo apt-get remove disco-master.

Eric Carvalho
la source
J'ai fait une chose similaire à l'OP uniquement avec le package salt-master ... cette réponse a également fonctionné pour moi!
Anentropic
sauveur de vie Eric, tu es super.
Peter Teoh
3
Brillant, j'avais: post-removal script returned error exit status 1.. Donc, j'ai trouvé ce script, je l'ai /var/lib/dpkg/info/{package}.postrmparcouru pour vérifier que j'avais fait les choses qu'il contient (supprimer les configurations / fichiers, etc.), puis je l'ai modifié comme indiqué ci-dessus .. IL FONCTIONNE .. Apt fonctionne à nouveau . Incroyable. : D
Grizly