Ce message est générique. Cela signifie simplement que l' dpkg
instance appelée par apt
/ a apt-get
échoué pour une raison quelconque. Il n'explique pas pourquoi, comment ou donne des conseils sur la façon de le résoudre. En tant que message de diagnostic, il n'est pas utile.
Vous devez lire les lignes avant le message (parfois un certain nombre d'entre elles) pour trouver la véritable erreur qui vous empêche de terminer l'installation.
Ouais, mais comment le résoudre?
Il n'y a pas de solution unique pour le résoudre. Il y a tellement de raisons pour lesquelles cela peut se produire qu'il est vain d'essayer de les répertorier toutes dans un seul message. Chaque circonstance est presque unique à ce package / environnement.
Mais il y a la rédemption. Le fait que vous voyez ce message signifie qu'il y a probablement des informations plus pertinentes dans les lignes avant le message. À des fins d'illustration, j'utiliserai un exemple:
(Reading database ... 81657 files and directories currently installed.)
Removing mongodb-10gen ...
arg: remove
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error processing mongodb-10gen (--remove):
subprocess installed pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
mongodb-10gen
E: Sub-process /usr/bin/dpkg returned an error code (1)
Maintenant, pour trouver le problème, vous devez lire à l'envers:
E: Sub-process /usr/bin/dpkg returned an error code (1)
ne me dit rien d'utile. Alors continuons.
Errors were encountered while processing: mongodb-10gen
me dit simplement quel paquet a des problèmes. Est utile mais pas suffisant.
subprocess installed post-installation script returned error exit status 100
: cela me dit que le script qui a échoué était le postinst
, celui exécuté en post-installation. Cela sera utile dans certaines situations, mais pas dans celui-ci.
dpkg: error while cleaning up:
rien d'utile ici.
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
BINGO! Cela nous dit que invoke-rc.d
, un binaire qui contrôle le script init dans la plupart des systèmes de type Debian, a échoué. Il a échoué car il n'a pas pu trouver le /etc/init.d/mongodb
script. C'est mauvais. Nous devons le créer ou le copier ailleurs pour qu'il recommence à fonctionner. La réinstallation du package est également normalement une option pour les file not found
erreurs.
Dans ce cas, le signalement d'un bogue n'est pas nécessaire car il est probable que ce soit nous qui ayons supprimé le script, mais si vous êtes absolument sûr de ne pas avoir touché le fichier (vous devez le debsums -sla
confirmer), signalez un bogue.
Alors, de quoi avez-vous besoin exactement pour obtenir de l'aide? Idéalement, la sortie complète du problème. Il est également utile d'inclure la sortie de sudo dpkg -C
et sudo apt-get check
, et la sortie de l' apt-cache policy package1 package2...
endroit où "package1 package2 ..." inclut tous les packages présentant des problèmes.
apt-get install (something)
et que vous avez reçu ce message d'erreur comme je l'ai fait, la solution pour moi étaitapt-get upgrade (something)
.