Verpfuschtes Upgrade - dpkg hängt an 'Started Braille Device Support'

7

Ich habe ein Upgrade von 14.10-> 15.04-> 15.10 schlecht vermasselt. Ich habe im Wiederherstellungsmodus herumgespielt und bin zuversichtlich, dass ich es geschafft habe, alle kaputten Pakete / Abhängigkeiten zu entfernen und neu zu installieren, aber jetzt stoße ich auf dieses seltsame Problem. Aptitude läuft nicht, es heißt, ich muss Sachen mit dpkg machen. dpkg macht Sachen, wird aber immer aufgelegt

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.

Dieser Braille-Hang plagt mich schon eine Weile, aber ich habe endlich eine Sackgasse erreicht. Der erste Teil mit den Fehlern scheint ein obskurer Fehler in Bezug auf vermasselte Festplatten zu sein, und nach einigem Protokollieren scheint es, als würde ich auf die Windows-Partition auf dieser Festplatte verweisen, was in Ordnung ist. Das scheint eine Sackgasse zu sein, und ich kann online nichts anderes darauf finden.

Ich möchte wirklich nicht sichern, neu formatieren und neu installieren müssen. Hat jemand einen Vorsprung?

neph
quelle

Antworten:

9

Ich bin gerade in eine ähnliche Situation geraten, mit einem verpfuschten Upgrade und anschließendem Herumspielen im Wiederherstellungsmodus, bei dem eine bestimmte Teilmenge von Paketen (nämlich Apport) dpkg --configure -amit derselben Started Braille Device Support.Nachricht hängen blieb . Der Hack, der mich dazu gebracht hat, war:

  1. Wenn Sie gerade auf einen blockierten apt-getBefehl starren , drücken Sie Ctrl+ C, um den Vorgang zu beenden. Wenn das nicht funktioniert (wie bei mir), drücken Sie Ctrl+ Zund führen Sie es kill -9 %1ein paar Mal aus, um es endgültig zu beenden. Dann renn los rm /var/lib/dpkg/lock, da du den Prozess ermordet hast, der das normalerweise macht.
  2. Ausführen screen(um mehr als eine Eingabeaufforderung zu erhalten).
  3. Drücken Sie Ctrl+ Aund dann c, um eine andere Eingabeaufforderung zu öffnen.
  4. Führen Sie es aus dpkg --configure -aund warten Sie, bis der Prozess hängen bleibt.
  5. Drücken Sie Ctrl+ Aund dann a, um zur anderen Eingabeaufforderung zurückzukehren.
  6. Lauf killall systemctl
  7. Drücken Sie Ctrl+ Aund dann a, um zum dpkg --configure -aBefehl zurückzukehren.
  8. Beachten Sie, dass das letzte Paket die Konfiguration abgeschlossen haben sollte und dpkgzum nächsten Paket übergegangen ist und auf dieselbe Weise aufgehängt oder abgeschlossen wurde.
  9. Wenn dpkges wieder hängt, fahren Sie mit Schritt 5 fort.
  10. Sobald dpkg --configure -adies abgeschlossen ist, können Sie im Wiederherstellungsmodus apt-get upgradeherumspielen und möglicherweise ausführen , bis das System in einem neu startbaren Zustand zu sein scheint.

Warum dies funktionierte (zumindest für mich), war mein Debug-Prozess wie folgt:

  1. apt-get upgradehing. Führen Sie das Ctrl+ Zund kill -9 %1das obige Element aus, um zur Eingabeaufforderung zurückzukehren.
  2. Führen Sie es aus dpkg --configure -aund beobachten Sie, dass es mit derselben Started Braille Device Support.Nachricht wie hängt apt-get upgrade. Diesmal funktioniert jedoch Ctrl+ C, um zur Eingabeaufforderung zurückzukehren.
  3. Suchen Sie nach "Ubuntu hat die Unterstützung von Braille-Geräten gestartet". Finden Sie auf dieser Debian-Eingabehilfeseite heraus, womit es zu tun hat brltty.
  4. Lauf apt-get remove brltty, vielleicht wird das Problem dadurch behoben.
  5. Führen Sie erneut aus dpkg --configure -aund stellen Sie fest, dass es immer noch hängt, aber diesmal gibt es keine Nachricht darüber Started Braille Device Support. OK.
  6. Führen Sie aus strace dpkg --configure -a, und beobachten Sie, dass der Prozess bei einem wait4(...)Aufruf eines Unterprozesses hängen bleibt .
  7. Beachten Sie, dass der Prozess die Datei /var/lib/dpkg/info/apport.postinst(oder etwas Ähnliches, IIRC) schreibt .
  8. lessKlicken Sie in der obigen Datei auf und versuchen Sie, einen Startdienst neu zu starten. Da wir uns im Wiederherstellungsmodus befinden und das Init-System noch nicht vollständig ausgeführt wurde, wird dies unangenehm sein.
  9. Führen Sie aus pstree, und sehen Sie, dass dpkg --reconfigure -adies tatsächlich zu einer bashSache geführt hat, die sich dann zu einer Sache verzweigt perlund diese schließlich systemctlneu startet und möglicherweise verwirrt ist.
  10. Beachten Sie, dass das postinstSkript nicht enthalten ist. set -eVielleicht können wir den darin enthaltenen Befehl "hung" beenden, sodass das Shell-Skript beendet wird und dpkgfortgesetzt wird.
  11. Öffnen Sie eine weitere Eingabeaufforderung, führen Sie sie aus killall systemctl, wechseln Sie zurück und sehen Sie, dass dpkgsie tatsächlich fortgesetzt wurde. Großartig. Es steckt jedoch wieder an derselben Stelle auf einem anderen Paket.
  12. Führen Sie killall systemctlerneut bis zum dpkgBeenden.
  13. Führen Sie es apt-get dist-upgradeerneut aus und stellen Sie sicher, dass alles auf dem neuesten Stand ist.
  14. Drücken Sie die Daumen und starten Sie neu.

Wie durch ein Wunder erholte sich das System und hat bisher keine Probleme.

Es handelt sich also nicht um eine vollständige Reduzierung (warum hängt systemctl im Wiederherstellungsmodus?), Noch ist es wahrscheinlich allgemein anwendbar, aber dieser Hack und der Prozess, um ihn zu entdecken, können jemandem helfen, der wie ich über eine Websuche auf diese Seite gelangt.

Steven Ruppert
quelle
Ich habe noch weniger Ahnung als Sie, warum das funktioniert hat, aber es hat funktioniert!
Soren Bjornstad
askubuntu.com/a/825929/589804 erreicht dasselbe mit einem einzigen Befehl und ohne dass der Bildschirm installiert werden muss.
Ben Seite
4

Eine Verbesserung gegenüber den vorherigen Antworten, wenn Sie den Befehl "Bildschirm" nicht verwenden können:

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

Ändern Sie die Schlafzeit auf ein Mindestzeitintervall, nach dem Sie sicher sind, dass dpkg stecken bleibt. (In meinem Fall habe ich tatsächlich 10s verwendet). Hat für mich gearbeitet!

Jameeyo
quelle
3

Ich bin auf dieses Problem gestoßen, als ich versucht habe, 15.10 auf 16.04 zu aktualisieren, und habe es mithilfe der folgenden Schritte behoben.

  1. Starten Sie in der Befehlszeile, indem Sie drücken, Ewenn Sie den ersten Eintrag markieren, um ihn zu bearbeiten.

  2. Cursor an das linuxZeilenende. Entfernen quiet splash vt.handoff=7und hinzufügen single.

  3. Drücken Sie Ctrl+, um Xzu starten.

  4. Ausführen screen(um mehr als eine Eingabeaufforderung zu erhalten).

  5. Drücken Sie Ctrl+ Aund dann C, um eine andere Eingabeaufforderung zu öffnen.

  6. Laufen Sie dpkg --configure -aund warten Sie, bis Sie fertig sind.

  7. Starten Sie neu

vicky
quelle
1
Gute Antwort +1. Ich habe nur eine Kritik: screenIst nicht Teil der Standard-Ubuntu-Installationen und hier unnötig. Ich würde argumentieren, dass dies hier eher verwirrend als hilfreich ist - insbesondere, da das Ausführen screeneiner Standardinstallation den Benutzer zur Installation auffordert, apt-getwas wahrscheinlich fehlschlagen würde, wenn er derzeit versucht, ein Paketverwaltungsproblem zu lösen.
David Foerster
2

Ich habe es geschafft, den Prozess hauptsächlich durch Drücken von Ctrl+ auszuführen, Zum den aktuellen Prozess anzuhalten und in den Hintergrund zu senden, gefolgt von der Eingabe

killall systemctl

in die Shell, um alle systemctlProzesse zu beenden und

fg

um den angehaltenen Vorgang erneut im Vordergrund fortzusetzen.

Mekk
quelle
Funktioniert für mich in Ubuntu 16.04 im Wiederherstellungsmodus, danke!
Alexey Vazhnov