web-dev-qa-db-fra.com

E: Le sous-processus / usr / bin / dpkg a renvoyé un code d'erreur (1) - mais comment puis-je trouver les messages d'erreur significatifs dans la sortie d'APT?

J'ai rencontré divers problèmes de gestion de packages qui provoquent l'échec des commandes APT avec une sortie se terminant par cette ligne:

E: Sub-process /usr/bin/dpkg returned an error code (1)

Parfois, d'autres codes d'erreur peuvent apparaître tels que 100ce qui signifie que dpkg n'est pas là , mais 1 est le code d'erreur le plus courant.

Malheureusement, ce code d'erreur ne me dit presque rien sur ce qui a réellement causé l'erreur ou comment je devrais la résoudre. Presque tous les problèmes de gestion de packages que je vois, quelle que soit leur cause ou leur solution, produisent la même erreur!

Alors, où vais-je trouver la partie utile de la sortie, que je peux rechercher en ligne ou poser des questions sur Ask Ubuntu?

8
Zanna

Dans la sortie complète de Sudo apt update Ou Sudo apt upgrade Ou Sudo apt install -f, Vous devriez trouver des messages de dpkg sur ce qui s'est réellement passé.

Ces lignes commenceront par dpkg: Car c'est le nom du programme renvoyant l'erreur. Les lignes de sortie précédant ou suivant immédiatement ces lignes sont souvent les plus utiles.


Quelques exemples des nombreuses erreurs possibles que vous pourriez voir:

Setting up install-info (6.4.90.dfsg.1-1build1) ...
/usr/sbin/update-info-dir: 3: /etc/environment: $: not found
dpkg: error processing package install-info (--configure):
    subprocess installed post-installation script returned error exit status 127

Cela signifie que le script de post-installation n'a pas pu s'exécuter. Les shells utilisent un état de sortie de 127 pour signifier "commande introuvable", donc une commande appelée par le script post-inst n'a pas été trouvée. Les lignes précédant la ligne dpkg donnent une indication quant à la raison: il y a un problème avec le fichier /etc/environment (Qui devrait définir des variables d'environnement comme PATH).

start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: error processing package runit (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
 git-daemon-run depends on runit; however:
  Package runit is not configured yet.

L'erreur ci-dessus a été provoquée par un bogue dans le package runit, qui s'attendait à trouver Upstart installé, bien que systemd ait été remplacé par le système d'initialisation par défaut pour Ubuntu. Ainsi, le message failed to connect to Upstart Est le meilleur indice, mais nous avons besoin du contexte pour savoir comment cela cause le problème de gestion des packages.

Unpacking libjline-Java (from .../libjline-Java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-Java_1.0-1_all.deb (--unpack):
 trying to overwrite '/usr/share/Java/jline.jar', which is also in package scala 2.9.2-400

Cela signifie qu'il y a des conflits de packages, peut-être causés par un mélange de versions de référentiel ou de référentiels tiers.


TL; DR

Dans tous les cas où vous voyez l'erreur Sub-process /usr/bin/dpkg returned an error code (1), vous devez rechercher ci-dessus les lignes commençant par dpkg: Et les lignes avant et après pour des indices utiles sur ce qui s'est mal passé. Essayez de rechercher ces erreurs spécifiques .

Si vous posez une question ici ou sur un autre site d'assistance, assurez-vous d'inclure la commande que vous avez exécutée et la sortie complète , pas seulement les messages d'erreur récapitulatifs .

5
Zanna

Apt enregistre ses actions séquentiellement , tout comme un humain.

Lisez simplement la sortie ligne par ligne.

Voici un exemple non approprié. Lisez-le ligne par ligne et vous verrez qu'il raconte une histoire:

I am going to build a tower out of five blocks...
Clearing a working surface in the kitchen.
Kitchen: Put 7 dirty dishes from the counter into the dishwasher
Kitchen: Wiped the counter clean
Opening the box of blocks.
Warning: There are only three blocks in the box.
Build: Placed the first block.
Build: Placed the second block.
Build: Placed the third block.
Build: ERROR: Cannot keep building - ran out of blocks.
Closing the box of blocks.
ERROR (summary): Failed to complete the five-block tower.

La journalisation Apt et dpkg fonctionne en exactement de la même manière - vous lisez l'histoire ligne par ligne. Vous voyez le gestionnaire de paquets se lancer dans son aventure: préparer, exécuter des sous-tâches, rencontrer des problèmes non fatals (avertissements), surmonter l'adversité, etc.

La plupart des sorties sont routinières, mais vous en avez besoin pour marquer la progression d'apt. Ce contexte est la façon dont vous comprenez ce qui se passait. C'est vraiment une histoire.

L'erreur (1) est courante. C'est un résumé code d'erreur, indiquant que le problème est survenu à une sous-tâche (" un problème de construction "). Revenez en arrière dans l'histoire jusqu'à l'endroit où cette sous-tâche particulière s'est produite, et vous verrez le détail spécifique (" à court de blocs ").

5
user535733