Unabhängig von der gewählten Aktion dpkg
bleibt mein Raspberry Pi 2 hängen. Es friert die gesamte Maschine ein, aber wenn es beispielsweise htop
bereits in einem anderen Fenster geöffnet ist, funktioniert es weiter.
Ich habe die meisten Befehle ausprobiert dpkg --configure -a
und würde mein gesamtes System lieber nicht zurücksetzen. Das strace
Protokoll ist zu lang für Pastebin, endet aber einige tausend Mal mit zwei Zeilen.
pselect6(16, [0 13 15], NULL, NULL, {tv_sec=0, tv_nsec=50000000}, {[], 8}) = 0 (Timeout)
wait4(3278, 0x7ea6c884, WNOHANG, NULL) = 0
Kann jemand helfen?
Antwort1
Ihr dpkg wartet auf einen Kindprozess. Dies ist daran zu erkennen, dass es sich in einem wait4()-Systemaufruf befindet. Nicht er bleibt hängen, sondern ein Kindprozess, wahrscheinlich ein Konfigurationsskript.
Überprüfen Sie, was los ist mit einem
pstree -pa
und strace dies. Da Sie ein guter Linuxer sind, denke ich, dass Sie auch den Befehl lsof sinnvoll einsetzen können. Strace hat auch ein Flag -f, mit dem Sie auch untergeordnete Prozesse verfolgen können.
Es kann auch nützlich sein, die Konfigurationsskripte manuell zu hotfixieren, um das Löschen der fehlerhaften Pakete zu ermöglichen.
Die meisten dpkg/apt-Befehle, die Sie verwenden, versuchen wahrscheinlich, die aktuell nicht konfigurierten Pakete auf Ihrem System zu konfigurieren. Aus diesem Grund stoßen Sie immer auf dieses fehlerhafte oder fehlerhafte Konfigurationsskript.
Läuft Ihr Syslogd? Manchmal kann ein vom Konfigurationsskript aufgerufenes Tool die Nichtverfügbarkeit nicht akzeptieren.
Die Konfigurationsskripte befinden sich in /var/lib/dpkg/info . Ich sage das nur im Stillen. Wenn Sie ein besonders schlechtes finden, kann es einfacher sein, es einfach als Hotfix zu löschen, aber ich schweige wirklich.