Dies ist mir in den letzten 5 Jahren oft passiert: Ein Upgrade hat mein System beschädigt. Jedes Mal, wenn ich in diese Situation gerate, muss ich das gesamte System neu installieren, was wirklich ärgerlich ist.
Gibt es eine Möglichkeit, ein Rollback des letzten Upgrades durchzuführen, um ein funktionsfähiges System ohne Neuinstallation zu erhalten? Wenn nicht, welcher Weg ist der beste, um dies als Idee mit höchster Priorität vorzuschlagen?
Ich habe gelesen, dass diese Idee in brainstorm.ubuntu.com beschrieben wurde, aber es fühlt sich tot an ... und die Foren sind voller Beispiele für Upgrades, die Dinge kaputt machen. Aus diesem Grund muss etwas in Bezug auf dieses Thema unternommen werden. Vielen Dank!
Antworten:
In synaptics können Sie zumindest steuern, was die letzten Aktualisierungen waren: Datei-Menü, Verlauf.
(wenn synaptic startbar ist, mit dem kaputten System). Mit dem Befehl apt -...- sollte es also nicht allzu schwierig sein, das Update zurückzusetzen.
Ich denke, es gibt auch einen History-Befehl für die Kommandozeile.
Möglicherweise müssen Sie das gesamte Paket löschen und eine bestimmte Version installieren. Afaik, es ist möglich, eine bestimmte Version zu installieren, aber ich hatte nie die Notwendigkeit, dies zu tun.
Update: Nachgeschlagen, wie man mit apt umgeht:
In den letzten 3x24h installierte Pakete suchen:
Mit der apt-cache-Richtlinie sehen Sie verfügbare Versionen eines Programms:
hier 3.6.7 und 3.6.3. Jetzt wissen Sie, welche frühere Version möglicherweise installiert ist (häufig nicht die unmittelbare Vorgängerversion):
Dann müssen Sie ein Apt-Pinning durchführen, um zukünftige Updates zu verhindern:
Erstellen Sie eine neue Datei in /etc/apt/preferences.d/ (if> = 10.4), die nach Ihrem Programm benannt ist.
quelle
1.0.2g-1ubuntu4.12
laut Apt ist? Es lehnt jedoch ab, dies als Versionsnummer zu akzeptieren. Ich möchte ein Downgrade1.0.2g-1ubuntu4.13
auf1.0.2g-1ubuntu4.12
find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##'
ist es wenigerMeistens können Sie sich
/var/log/apt/history.log
über Änderungen informieren, die von apt / synaptic vorgenommen wurden. Es ist nur ein bisschen forensisch und viel zu tun.Gehen Sie zurück zu dem Datum, an dem Ihr System noch einwandfrei funktionierte.
Nehmen Sie zuerst alle Pakete, die seitdem installiert wurden, und fügen Sie sie in einem Deinstallationsskript zusammen. Wenn das Skript beendet ist, fügen Sie alle entfernten Pakete erneut hinzu.
Ein Beispielfall:
Logdatei:
du kannst sehen,
wurde von Synaptic installiert. wurde
libfglrx:amd64
von Synaptic entfernt.Wir sind in umgekehrter Reihenfolge vorgegangen, also entfernen wir zuerst die neu installierten Pakete und fügen die entfernten Pakete erneut hinzu.
Ein funktionierender Befehl für diesen Fall könnte folgendermaßen aussehen:
Vielleicht wäre es nicht die beste Idee, auf den
-y
Switch zu verzichten - um mehr Kontrolle über den Prozess zu haben (um kaputte Abhängigkeiten zu vermeiden). Die meisten von euch würden sich nicht den Finger brechen, wenn sie ein paar Überprüfungen "y" machen.In den meisten Fällen ist ein Rollback auf diese Weise möglich, aber wenn Abhängigkeiten bereits unterbrochen sind, können Sie auf ein noch größeres Problem stoßen.
quelle
Die meiste Zeit, wenn Ihr System kaputt ist, ist es ein Kernel- Problem.
Starten Sie einfach einen älteren Kernel und installieren Sie die neuesten Pakete (insbesondere die Kernelpakete) neu, die möglicherweise nicht korrekt aktualisiert wurden. Einige Anmerkungen:
Ist Ihr Freund zu überprüfen, was die Liste der kürzlich aktualisierten / installierten Pakete ist
kann die meiste Zeit halb installierte Pakete reparieren
quelle
Leider ist dies noch nicht möglich. Snapshot / Rollback auf Dateisystemebene ist eine der Funktionen des kommenden BTRFS, es gibt jedoch noch Möglichkeiten, die Funktionen vollständig und stabil genug zu machen, um sie als Standarddateisystem zu verwenden.
quelle
Bei einem größeren Upgrade klone ich die Festplatte mit Clonezilla . Brennen Sie es auf eine CD, halten Sie eine (externe) Ersatzfestplatte bereit und befolgen Sie die Anweisungen auf der Clonezilla LiveCD. Wählen Sie den
partition-image
Modus, der am wenigsten Platz beansprucht.Wenn Sie der Meinung sind, dass Sie Ihr System beschädigt haben (oder Änderungen rückgängig machen möchten), starten Sie einfach die Clonezilla LiveCD, wählen Sie das Image auf Ihrer (externen) Festplatte aus und stellen Sie es wieder her. Da diese Bilder eine wörtliche Kopie jedes Bits auf Ihrer Festplatte sind, kann dies abhängig von Ihrer Festplatten- und Verbindungsgeschwindigkeit (der Verbindung zwischen den Daten, normalerweise einer externen USB-Festplatte, und dem Computer) einige Stunden dauern.
Dies wird übrigens als Sicherungsmethode bezeichnet.
quelle
Sie können problemlos eine ältere Version eines bestimmten Pakets (Downgrade) mit apt oder dpkg installieren . Die Suche nach einer älteren Version des Pakets ist das Problem, da diese häufig aus dem Pool verschwinden und beim Einspielen von Updates gespiegelt werden.
Wenn Sie das Paket von einer Installations-CD, einem veralteten Spiegel oder einem Cache installieren, müssen Sie es auch auf der alten Version belassen, damit es erst aktualisiert wird, wenn Sie dies zulassen. Das heißt, Sie müssen nach Updates suchen und diese testen, bis Ihr Problem behoben ist. Dies ist natürlich ein Problem, da Sie in der Zwischenzeit (möglicherweise für immer) mit dem nicht festgelegten, möglicherweise unsicheren Paket zurückbleiben. Das bedeutet, dass jeder Benutzer mit einem Systemproblem in einem zufälligen Zustand verbleibt, bis er es beheben kann.
Jede Software ist auch nicht vorwärtskompatibel, daher verhält sich eine ältere Version von etwas möglicherweise nicht richtig, wenn sie mit neueren Konfigurations- oder Datendateien gespeist wird. Offensichtlich ist dies nur zu lösen, wenn Sie auch alle Benutzerdaten in einen Zustand zurückversetzen, bevor das Upgrade durchgeführt wurde.
Es wäre toll, wenn es einen Weg gäbe, dies zu tun, aber es ist massiv problematisch. Wer glaubt, dass es eine kohärente Lösung gibt, sollte einen Vorschlag schreiben und Kommentare einladen oder noch besser eine Proof-of-Concept-Lösung (Code, Skript, Dokument) erstellen. Trolling und Jammern ist nicht konstruktiv.
Da es keine saubere technische Lösung gibt, wird die meiste Software mit der Mentalität "der einzige Weg ist vorwärts" entwickelt (und integriert). Der Versuch, veraltete Versionen zu verwalten, ist Zeitverschwendung. Gefundene Probleme werden in neueren Versionen so schnell wie möglich behoben. Als kleinere Lösung würde ich gerne ein Archiv früherer Paketversionen sehen, das gelegentlich zur vorübergehenden Behebung aufbewahrt wird.
In der Zwischenzeit können Sie Fehler melden und erwarten, dass die neueste Software niemals ausfällt. Ein gefundener Fix sollte im nächsten Update enthalten sein. Entwickler sind (meistens) Menschen und daher fehlbar. Computer sind fummelig und voller verrückter Abwechslung und Details. Defensiv gewartete Systeme, die gut unterstützte Komponenten und eine stabile integrierte Softwareverteilung verwenden, können sehr stabil sein, ohne dass sie unsicher werden oder trotzdem nicht aufgerüstet werden können.
quelle