Ich habe versehentlich alle Pakete entfernt, die mit dem Namen beginnen jpeg
mit:
sudo apt-get remove jpeg*
Dies hat eine Menge Dinge vermasselt, Unity, Firefox, Flash Player usw. entfernt.
Ich habe es irgendwie geschafft, den Desktop und die Einheit wiederherzustellen, aber dann sind noch viele Dinge fehlerhaft. Zum Beispiel .rpm
Dateien und lassen sich .tag.gz
einfach nicht öffnen.
Was ich will, ist eine Möglichkeit, alles zu beheben, was nicht stimmt. Dies entspricht einer Reparaturinstallation mit einer Windows-CD.
Irgendwelche Tipps?
Antworten:
Sie können die
ubuntu-desktop
Aufgabe installieren :Dadurch werden alle Pakete des Standard-Ubuntu-Desktops installiert, die Sie entfernt haben. Von Ihnen installierte Pakete, die nicht zum Standard-Desktop gehören, werden nicht wiederhergestellt (dh Unity und Firefox werden neu installiert, Flash Player jedoch nicht).
Um diese Pakete zu installieren, können Sie genau nachsehen
/var/log/apt/history.log
, was Sie entfernt haben.Hinweis: Die Installation des
ubuntu-desktop^
Tasks entspricht nicht der Installation desubuntu-desktop
Pakets . Der erste gibt APT einige Hinweise zum Auflösen von Abhängigkeiten mit virtuellen Paketen, der zweite gibt APT die Freiheit, Pakete auszuwählen (und installiert am Ende nutzlose Dinge wieubiquity
).Warum ist das Problem aufgetreten?
apt-get remove jpeg*
entfernt nicht alle Pakete, die mit beginnenjpeg
. Stattdessen werden alle Pakete entfernt, diejpe
im Namen enthalten sind. Dies liegt daran, dass apt-get mit regulären Ausdrücken arbeitet, sodass jpeg * bedeutet: alles, was jpe enthält, gefolgt von null oder mehr g .quelle
tasksel
eine Aufgabe zu entfernen - siehe böse tasksel-bugDie beste Möglichkeit, dieses Problem zu beheben, ist möglicherweise die Neuinstallation von Ubuntu. (Sie sollten Ihre Dokumente zuerst sichern, auch wenn Sie eine Neuinstallation ohne Neuformatierung planen.)
Wenn Sie versuchen möchten, das System zu reparieren, überprüfen Sie die Protokolldateien des Paketmanagers, um festzustellen, welche Pakete entfernt wurden, und installieren Sie sie erneut:
/var/log/dpkg.log
(vollständige Informationen, aber schwer zu lesen)/var/log/apt/history.log
(abgekürzt mit wird Ihnen mitteilen, dass jedes Paket entfernt oder anderweitig geändert wurde - wahrscheinlich die beste Wahl)/var/log/apt/term.log
(Wenn Sie die Pakete mitapt-get
im Terminal entfernt haben, sollte dies anzeigen, was Sie damals gesehen haben, einschließlich Listen, welche Pakete entfernt werden sollten - dies ist also möglicherweise der beste Weg.)Das erneute Installieren von Paketen, deren Namen mit "" beginnen
jpeg
, funktioniert nicht, da viele (mit ziemlicher Sicherheit die meisten) der entfernten Pakete entfernt wurden, weil sie sich auf diese Pakete stützten .In Zukunft empfehle ich, die Folgen der Deinstallation eines Pakets sorgfältig zu prüfen. Wenn Sie über die Befehlszeile arbeiten, werden Sie immer benachrichtigt. (Es sei denn, Sie verwenden die
-y
Option. In diesem Fall normalerweise nicht. Ich empfehle, diese Option nicht zu verwenden, es sei denn, Sie wissen, was Sie tun, insbesondere bei Umzügen.)Eine Möglichkeit, die Konsequenzen einer Paketverwaltungsoperation zu überprüfen, mit der sie ausgeführt wird
apt-get
, ohne das Risiko einzugehen, besteht darin,apt-get -s
statt auszuführensudo apt-get
. Dies simuliert lediglich die angegebene Aktion und gibt an, welche Pakete davon betroffen sind und wie.quelle
Ich laufe
sudo apt-get purge wine*
auf Ubuntu 15.10, also keine grafische Oberfläche beim Booten nur Terminal Login Option.Wie Eliah Kagan vorschlug, verwendete ich Informationen von
/var/log/apt/history.log
nano in history.log und erstellte ein einfaches Skript, dassudo apt-get install
alle gelöschten Pakete enthielt, die ich in der Zeile:Aber zuerst musste ich manuell Text zwischen all: und entfernen, einschließlich:,
In diesem Schritt wäre ein neues Skript hilfreich, da es sich um Hunderte von Paketen handelt. Danach habe ich das Skript ausgeführt und einige entfernt
Unable to locate packages
(die ich manuell installiert hatte). Führen Sie das Skript erneut aus und fertig. Alles funktioniert gut ... zum Glückquelle
Installieren Sie das Ubuntu-Desktop- Paket
Es werden die erforderlichen Pakete für Ihr System installiert.
quelle
Ich habe versehentlich entfernt
libssl1.0.0
und meine Maschine war verkrüppelt. Zum Wiederherstellen habe ich Folgendes getan:cp /var/log/apt/term.log ~/libssl.term.log
vi ~/libssl.term.log
ping google.com
), starten Sie es im Wiederherstellungsmodus neu und aktivieren Sie das Netzwerkcat ~/libssl.term.log | grep ^Removing | sed -e 's/^Removing //g;s/ (.*$//g;/diversion of/d;/dangling symlinks/d' | xargs sudo apt-get -y install
quelle
Hier ist ein kleines Python-Skript, in das Sie den (nicht verwendbaren) Paket-String aus Ihrer Massen-Deinstallation schreiben können
/var/log/apt/history.log
. Es wird eine Zeichenfolge ausgegeben, die Sie kopieren und in den Befehl apt-get install einfügen können, um alle entfernten Pakete einfach zu installieren.quelle