Mise à niveau endommagée - dpkg se bloque sur «Prise en charge des périphériques en braille»

6

Mauvaise mise à niveau de 14.10- & gt; 15.04- & gt; 15.10. Je me suis amusé en mode récupération et je suis confiant que j'ai réussi à supprimer tous les paquets / dépendances cassés et à les réinstaller, mais maintenant je suis confronté à ce problème étrange. L'aptitude ne fonctionnera pas, cela signifie que je dois faire des choses avec dpkg. dpkg va faire des trucs, mais se bloque toujours sur

Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)
Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)
[  OK  ] Started Braille Device Support.

Ce coup de braille me frappe depuis un moment, mais je suis finalement parvenu à une impasse. La première partie, avec les erreurs, semble être une erreur obscure concernant les disques durs, et après quelques recherches, il semble que je puisse pointer vers la partition Windows de ce disque dur, ce qui est bien. Cela semble être une impasse, et je ne trouve rien d'autre en ligne.

J'aimerais vraiment ne pas avoir à sauvegarder, reformater et réinstaller. Est-ce que quelqu'un a une avance?

    
posée kikjezrous 09.02.2016 - 17:03
la source

4 réponses

8

Je viens juste de me retrouver dans une situation similaire avec une mise à niveau bâclée et un échec ultérieur en mode récupération, où un certain sous-ensemble de paquets (à savoir pond) était suspendu à dpkg --configure -a avec ce même message Started Braille Device Support. . Le piratage qui m'a fait traverser cela était:

  1. Si vous regardez actuellement une commande apt-get bloquée, appuyez sur Ctrl + C pour arrêter. Si cela ne fonctionne pas (comme pour moi), appuyez sur Ctrl + Z , puis exécutez kill -9 %1 plusieurs fois pour le supprimer définitivement. Ensuite, exécutez rm /var/lib/dpkg/lock , puisque vous avez assassiné le processus qui le fait habituellement.
  2. Exécutez screen (pour obtenir plusieurs invites).
  3. Appuyez sur Ctrl + A puis sur c pour ouvrir une autre invite.
  4. Exécutez dpkg --configure -a et attendez que le processus se bloque.
  5. Appuyez sur Ctrl + A puis sur un pour revenir à l’autre invite.
  6. Exécuter killall systemctl
  7. Appuyez sur Ctrl + A puis sur a pour revenir à la commande dpkg --configure -a .
  8. Notez que le dernier package doit avoir terminé sa configuration et que dpkg est passé au package suivant et est suspendu de la même manière ou est terminé.
  9. Si dpkg est à nouveau suspendu, passez à l'étape 5.
  10. Une fois que dpkg --configure -a est finalement terminé, continuez à effectuer des corrections en mode de récupération, en exécutant éventuellement apt-get upgrade jusqu'à ce que le système semble redémarrer.

Quant à savoir pourquoi cela a fonctionné (pour moi au moins), mon processus de débogage était comme suit:

  1. apt-get upgrade était suspendu. Exécutez la commande Ctrl + Z et kill -9 %1 ci-dessus pour revenir à l'invite.
  2. Exécutez dpkg --configure -a et observez qu’il se bloque avec le même message Started Braille Device Support. que apt-get upgrade . Cependant, Ctrl + C fonctionne cette fois-ci pour revenir à l'invite.
  3. Recherchez "ubuntu a démarré le support des périphériques braille". Consultez cette page d'accessibilité de Debian qui concerne brltty .
  4. Exécutez apt-get remove brltty , peut-être que le problème disparaîtra.
  5. Réexécutez dpkg --configure -a et remarquez que toujours se bloque, mais cette fois, il n'y a aucun message sur Started Braille Device Support . OK.
  6. Exécutez strace dpkg --configure -a et observez que le processus est bloqué sur un appel wait4(...) à un sous-processus.
  7. Quelques lignes de strace vers le haut, notez que le processus écrit le fichier /var/lib/dpkg/info/apport.postinst (ou quelque chose de similaire, IIRC).
  8. less le fichier ci-dessus, et voir qu'il tente de redémarrer un service de démarrage. Posit que comme nous sommes en mode de récupération et que le système d'initialisation n'est pas complètement terminé, cela va être gênant.
  9. Exécutez pstree , et voyez que dpkg --reconfigure -a a effectivement fait un saut vers un objet bash , qui passe ensuite à perl , et enfin à systemctl , qui redémarre les services de démarrage et peut être confus.
  10. Notez que postinst n'a pas de set -e , alors peut-être pouvons-nous tuer la commande bloquée à l'intérieur, donc le script shell se termine et dpkg avance.
  11. Ouvrez une autre invite d’écran, exécutez killall systemctl , revenez en arrière et voyez que dpkg est effectivement passé. Génial. Il est encore bloqué au même endroit, sur un autre paquet.
  12. Exécutez killall systemctl à nouveau jusqu'à ce que dpkg se termine.
  13. Exécutez à nouveau apt-get dist-upgrade , vérifiez que tout est à jour.
  14. Croise les doigts et redémarre.

Miraculeusement, le système a récupéré et n’a jusqu’à présent aucun problème.

Donc, ce n'est pas une réduction complète (pourquoi systemctl se bloque-t-il en mode de récupération?), ni probablement applicable, mais ce hack et le processus de découverte peuvent aider quelqu'un qui arrive sur cette page Je l'ai fait.

    
réponse donnée blendmaster 01.05.2016 - 04:25
la source
3

J'ai rencontré ce problème lorsque j'ai essayé de mettre à niveau 15.10 à 16.04 et que j'ai corrigé en utilisant les étapes ci-dessous.

  1. Démarrez en ligne de commande en appuyant sur E lorsque mettez en surbrillance la première entrée pour le modifier.

  2. Curseur à la fin de la ligne linux . Supprimez quiet splash vt.handoff=7 et ajoutez single .

  3. Appuyez sur Ctrl + X pour démarrer.

  4. Exécutez screen (afin d’avoir plusieurs invites).

  5. Appuyez sur Ctrl + A puis sur C pour ouvrir une autre invite.

  6. Exécutez dpkg --configure -a et attendez de terminer.

  7. Redémarrer

réponse donnée vicky 27.06.2016 - 17:57
la source
3

Une amélioration des réponses précédentes lorsque vous ne pouvez pas utiliser la commande 'screen':

dpkg --configure -a & (sleep 2m; killall systemctl)

Modifiez le temps de repos à un intervalle minimum, après quoi vous êtes certain que dpkg reste bloqué. (Dans mon cas, en fait, j'ai utilisé 10s). Travaillé pour moi!

    
réponse donnée Jameeyo 17.09.2016 - 00:50
la source
1

J'ai réussi à exécuter le processus principalement en appuyant sur Ctrl + Z pour interrompre le processus en cours et l'envoyer en arrière-plan, suivi de la saisie de

killall systemctl

dans le shell pour mettre fin à tous les processus systemctl et

fg

pour poursuivre le processus de pause à nouveau au premier plan.

    
réponse donnée user2574241 11.04.2018 - 11:42
la source

Lire d'autres questions sur les étiquettes