it-swarm.com.de

Gibt es eine Möglichkeit, das letzte Upgrade zurückzusetzen?

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 diese Idee als oberste 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!

54
Marcelo Ruiz

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:

Suchen Sie nach Paketen, die in den letzten 3x24 Stunden installiert wurden:

find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##' 

Mit der apt-cache-Richtlinie sehen Sie verfügbare Versionen eines Programms:

Sudo apt-cache policy PROGRAM:
 *** 3.6.7+build3+nobinonly-0ubuntu0.10.04.1 0
        500 http://de.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
        500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
        100 /var/lib/dpkg/status
     3.6.3+nobinonly-0ubuntu4 0

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):

Sudo apt-get install PROGRAM=3.6.3

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.

Package: program
Pin: version 3.6.3*
Pin-Priority: 1000
14
user unknown

Meistens können Sie /var/log/apt/history.log zu Änderungen von apt/synaptic konsultieren. 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:

Start-Date: 2014-05-28  21:28:11
Commandline: synaptic
Install: libfglrx-amdxvba1:AMD64 (13.12-3kali1, automatic), libgl1-fglrx-glx:AMD64 (13.12-3kali1), glx-alternative-fglrx:AMD64 (0.4.1kali1, automatic), libfglrx:AMD64 (13.12-3kali1, au$
Remove: fglrx-glx-ia32:AMD64 (12-6+point-3)
End-Date: 2014-05-28  21:28:27

du kannst sehen,

libfglrx-amdxvba1:AMD64 libgl1-fglrx-glx:AMD64 glx-alternative-fglrx:AMD64 & libfglrx:AMD64 

wurde von Synaptic installiert. as like libfglrx:AMD64 wurde 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:

Sudo apt-get remove -y libfglrx-amdxvba1:AMD64 libgl1-fglrx-glx:AMD64 glx-alternative-fglrx:AMD64 libfglrx:AMD64 && Sudo apt-get install -y libfglrx:AMD64

Vielleicht wäre es nicht die beste Idee, auf den Schalter -y 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.

7
Matt

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:

/var/log/dpkg.log

ist Ihr Freund zu überprüfen, was die Liste der kürzlich aktualisierten/installierten Pakete ist

Sudo apt-get -f install

kann die meiste Zeit halb installierte Pakete reparieren

6

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.

4
psusi

Sie können installieren Sie eine ältere Version eines bestimmten Pakets (Downgrade) mit Apt oder Dpkg leicht . 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 großartig, 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 Bleeding Edge-Software niemals versagt. 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.

3
XTL

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 Modus partition-image, dies belegt den geringsten Speicherplatz.

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.

3
Lekensteyn