aptitude
gibt Ihnen Zugriff auf alle Versionen eines Pakets, sofern dies gemäß der Debian-Paketverwaltung verfügbar ist .
Wie kann ich einen "apt-get upgrade" -Befehl unter Ubuntu rückgängig machen oder zurücksetzen?
Gibt es in Ubuntu eine Möglichkeit, das letzte Upgrade rückgängig zu machen oder es rückgängig zu machen, apt-get upgrade
wenn Sie die Ergebnisse nicht mögen?
11 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Ich bin auf Hartmans Blogstatic Blog gestoßen: Wie man ein Update in Ubuntu Lucid rückgängig macht
Der erste Schritt, um das fehlerhafte Update rückgängig zu machen, bestand darin, herauszufinden, um welche Updates es sich genau handelt. Nachdem ich einige Foren durchsucht hatte, fand ich eine Möglichkeit, meinen Update-Verlauf zu sehen: Öffnen Sie den synaptic package manager ("sudo synaptic" im Terminal). Klicken Sie in der Menüleiste auf Datei -> Verlauf. Alle Updates werden nach Datum sortiert angezeigt.
Leider hatte ich heute etwa 20 Updates installiert und wusste nicht, welches das Problem verursacht hatte. Durch das Durchsuchen der in der Verlaufsliste genannten Pakete konnte ich jeweils ein paar herabstufen, bis das Problem gelöst war und ich das fehlerhafte Update gefunden hatte. Um dies zu tun:
Verwenden Sie die Suchleiste, um das Paket zu finden, das Sie downgraden möchten. Wenn Sie gefunden haben, wonach Sie suchen, klicken Sie auf das Paket, um es auszuwählen. Klicken Sie in der Menüleiste auf Paket -> Version erzwingen und wählen Sie die vorherige Version des Pakets aus dem Dropdown-Menü aus. Klicken Sie auf die Schaltfläche "Übernehmen", um das Downgrade anzuwenden.
Ich musste das heute auf meinem Debian-System tun. Zuerst habe ich den Zeitraum für das fehlerhafte Upgrade ermittelt und die Protokolleinträge mit den alten und neuen Versionsnummern der aktualisierten Pakete abgerufen:
$ awk '$1=="2016-03-20" && $3=="upgrade"' /var/log/dpkg.log 2016-03-20 16:58:22 upgrade libwebkitgtk-3.0-0:amd64 2.4.9-3 2.4.10-1 2016-03-20 16:58:24 upgrade libjavascriptcoregtk-3.0-0:amd64 2.4.9-3 2.4.10-1 2016-03-20 16:58:26 upgrade traceroute:amd64 1:2.0.22-1 1:2.1.0-1 2016-03-20 16:58:33 upgrade ethtool:amd64 1:4.2-1 1:4.5-1 2016-03-20 16:58:34 upgrade libsdl1.2debian:amd64 1.2.15+dfsg1-3 1.2.15+dfsg1-4 2016-03-20 16:58:34 upgrade subversion:amd64 1.9.3-2+b1 1.9.3-3 2016-03-20 16:58:36 upgrade libsvn1:amd64 1.9.3-2+b1 1.9.3-3 2016-03-20 16:58:56 upgrade linux-image-amd64:amd64 4.3+70 4.4+71 2016-03-20 16:58:56 upgrade linux-libc-dev:amd64 4.3.5-1 4.4.6-1 2016-03-20 16:59:03 upgrade amd64-microcode:amd64 2.20141028.1 2.20160316.1
Als Nächstes versuchte ich, die noch zwischengespeicherten Paketdateien auf der Festplatte zu finden (zum Glück hatte ich kein Autoclean ausgeführt):
$ awk '$1=="2016-03-20" && $3=="upgrade" ' /var/log/dpkg.log | xargs -r ls -ld ls: cannot access '/var/cache/apt/archives/ethtool_1%3a4.2-1_amd64.deb': No such file or directory -rw-r--r-- 1 root root 28820 Dec 18 2014 /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb -rw-r--r-- 1 root root 1978874 Dec 10 18:22 /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb -rw-r--r-- 1 root root 185006 Mar 12 00:41 /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb -rw-r--r-- 1 root root 1317644 Mar 3 11:30 /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb -rw-r--r-- 1 root root 7679400 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb -rw-r--r-- 1 root root 6108 Dec 14 06:59 /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb -rw-r--r-- 1 root root 1075506 Feb 7 21:36 /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb -rw-r--r-- 1 root root 983174 Mar 3 11:30 /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb -rw-r--r-- 1 root root 53376 Feb 28 18:35 /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb
Anscheinend habe ich aus irgendeinem Grund nicht das ältere ethtool-Paket. Lassen Sie uns dennoch die älteren Paketdateien mit Gewalt installieren:
$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb dpkg: warning: downgrading amd64-microcode from 2.20160316.1 to 2.20141028.1 (Reading database ... 139632 files and directories currently installed.) Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ... Unpacking amd64-microcode (2.20141028.1) over (2.20160316.1) ... dpkg: warning: downgrading libjavascriptcoregtk-3.0-0:amd64 from 2.4.10-1 to 2.4.9-3 Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ... Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.10-1) ... dpkg: warning: downgrading libsdl1.2debian:amd64 from 1.2.15+dfsg1-4 to 1.2.15+dfsg1-3 Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ... Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-4) ... dpkg: warning: downgrading libsvn1:amd64 from 1.9.3-3 to 1.9.3-2+b1 Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ... Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-3) ... Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ... Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ... dpkg: warning: downgrading linux-image-amd64 from 4.4+71 to 4.3+70 Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ... Unpacking linux-image-amd64 (4.3+70) over (4.4+71) ... dpkg: warning: downgrading linux-libc-dev:amd64 from 4.4.6-1 to 4.3.5-1 Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ... Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.4.6-1) ... dpkg: warning: downgrading subversion from 1.9.3-3 to 1.9.3-2+b1 Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ... Unpacking subversion (1.9.3-2+b1) over (1.9.3-3) ... dpkg: warning: downgrading traceroute from 1:2.1.0-1 to 1:2.0.22-1 Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ... Unpacking traceroute (1:2.0.22-1) over (1:2.1.0-1) ... Setting up amd64-microcode (2.20141028.1) ... update-initramfs: deferring update (trigger activated) amd64-microcode: microcode will be updated at next boot Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ... Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ... Setting up libsvn1:amd64 (1.9.3-2+b1) ... dpkg: dependency problems prevent configuration of libwebkitgtk-3.0-0:amd64: libwebkitgtk-3.0-0:amd64 depends on libwebkitgtk-3.0-common (>= 2.4.9); however: Package libwebkitgtk-3.0-common is not installed. dpkg: error processing package libwebkitgtk-3.0-0:amd64 (--install): dependency problems - leaving unconfigured Setting up linux-image-amd64 (4.3+70) ... Setting up linux-libc-dev:amd64 (4.3.5-1) ... Setting up subversion (1.9.3-2+b1) ... Setting up traceroute (1:2.0.22-1) ... update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode Processing triggers for libc-bin (2.22-3) ... Processing triggers for man-db (2.7.5-1) ... Processing triggers for initramfs-tools (0.123) ... update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64 Errors were encountered while processing: libwebkitgtk-3.0-0:amd64
Wie die Fehlermeldung besagte, hing eines meiner Pakete vor dem Upgrade von einem -common-Paket ab, das jedoch vom Upgrade entfernt wurde (und apt-get kann es nicht mehr finden). Glücklicherweise befindet sich die Paketdatei immer noch in / var / cache / apt, sodass ich sie einfach der Liste hinzufügen und es erneut versuchen kann:
$ ls -ld /var/cache/apt/archives/libwebkitgtk-3.0-common* -rw-r--r-- 1 root root 452278 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb $ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb (Reading database ... 139632 files and directories currently installed.) Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ... Unpacking amd64-microcode (2.20141028.1) over (2.20141028.1) ... Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ... Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ... Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ... Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-3) ... Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ... Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-2+b1) ... Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ... Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ... Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ... Unpacking linux-image-amd64 (4.3+70) over (4.3+70) ... Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ... Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.3.5-1) ... Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ... Unpacking subversion (1.9.3-2+b1) over (1.9.3-2+b1) ... Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ... Unpacking traceroute (1:2.0.22-1) over (1:2.0.22-1) ... Selecting previously unselected package libwebkitgtk-3.0-common. Preparing to unpack .../libwebkitgtk-3.0-common_2.4.9-3_all.deb ... Unpacking libwebkitgtk-3.0-common (2.4.9-3) ... Setting up amd64-microcode (2.20141028.1) ... update-initramfs: deferring update (trigger activated) amd64-microcode: microcode will be updated at next boot Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ... Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ... Setting up libsvn1:amd64 (1.9.3-2+b1) ... Setting up linux-image-amd64 (4.3+70) ... Setting up linux-libc-dev:amd64 (4.3.5-1) ... Setting up subversion (1.9.3-2+b1) ... Setting up traceroute (1:2.0.22-1) ... update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode Setting up libwebkitgtk-3.0-common (2.4.9-3) ... Setting up libwebkitgtk-3.0-0:amd64 (2.4.9-3) ... Processing triggers for libc-bin (2.22-3) ... Processing triggers for man-db (2.7.5-1) ... Processing triggers for initramfs-tools (0.123) ... update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64
Erfolg! Das hat mein Problem eigentlich nicht gelöst. Es hat jedoch die Pakete, QED, erfolgreich heruntergestuft.
Ich musste heute auch ein Paket-Upgrade auf ein paar Debian-Servern rückgängig machen. Ich habe die Pakete mit aptitute erfolgreich auf die letzte Version zurückgesetzt, wobei der folgende Befehl awk sehr hilfreich war.
( Ersetzen Sie im folgenden Befehl die Datumszeichenfolge durch das Datum des Tages, ab dem Sie die Upgrades zurücksetzen möchten. )
awk 'BEGIN{ start="0" } { if($0 ~ /Log started: 2017-06-20/) { start="1"} if ( start == "1" && $0 ~ /Unpacking.*over/) }' /var/log/apt/term.log
Überprüfen Sie die Ausgabe, um sicherzustellen, dass dies die Pakete und Versionen sind, die zurückgesetzt werden sollen. Verwenden Sie dann aptitute, um das Downgrade der aufgelisteten Pakete durchzuführen:
aptitute install [paste output here]
Ich hoffe, dass dies auch für andere eine nützliche Zeitersparnis ist.
Ich glaube nicht, beiseite eine vollständige Sicherung der relevanten Dateisysteme von der Einnahme (jene, die enthalten /
, /bin
, /lib
, /sbin
, /usr
, /var
, /etc
und /boot
(die alle auf auf Dateisystem sein kann) und Ihr Boot Record), so können Sie das Gerät danach zurück rollen.
Ich betreibe meine Linux-Server in einer virtualisierten Umgebung und führe einen Shapshot aus, bevor ein Upgrade von apt-get durchgeführt wird, oder wichtige Updates / Upgrades von Drittanbietern.
Wenn dann etwas schief geht, kehre ich einfach um und das Leben geht weiter, bis ich mehr Informationen erfahren kann.
Das hat sich sehr bewährt, als ich meine Ubuntu-Box auf 12.04 aufgerüstet habe und MySQL nach dem Upgrade irgendwie nicht mehr funktionierte. Ich rollte zurück, fand die Antwort später, las das Upgrade erneut, korrigierte MySQL und das Leben war gut.
Sie könnten checkinstall versuchen
Nach dir ./configure; Wenn Sie Ihr Programm erstellen, führt CheckInstall die Option make install (oder was auch immer Sie ausführen lassen) aus und verfolgt alle Dateien, die durch diese Installation geändert wurden, und verwendet dazu die excelent installwatch ...
Vielleicht könnten Sie also sagen, dass es aptitude safe-upgrade ausführen soll, und es würde jede durch das Upgrade vorgenommene Änderung nachverfolgen.
Es gibt ein Projekt namens Nexenta, das den OpenSolaris-Kernel mit dem Ubuntu-Userspace kombiniert. Es bietet ein Tool zur Integration von Solaris ZFS und apt von aptian, um eine Schaltfläche zum Rückgängigmachen von Upgrades bereitzustellen. Siehe hier: http://www.nexenta.org/os/TransactionalZFSUpgrades
Im Allgemeinen benötigen Sie ein Versionierungsdateisystem. Btrfs für Linux ist in Entwicklung.
Die Verwendung von Apt-Undo ist eine mögliche Option, sie kann jedoch nur funktionieren, wenn Sie sie zum Installieren und Deinstallieren von Paketen verwenden. Es hilft nicht, wenn Sie die Software bereits wie üblich deinstalliert haben.
http://www.ubuntugeek.com/apt-undo-a-simple-way-of-undoing-apt-actions.html http://lkubuntu.wordpress.com/2011/07/27/apt-undo-a -einfacher Weg des Rückgängigmachens von Aktionen /
Ich habe das schon einige Male erfolgreich gemacht, aber ich werde es nicht empfehlen. Das habe ich gemacht (wenn ich mich recht erinnere):
1) Entfernen Sie nicht offizielle Software, die nicht in den standardmäßigen Ubuntu-Repositorys enthalten ist (dies ist möglicherweise nicht erforderlich, aber ich schlage vor, dass sie Ihnen im Weg stehen).
2) Ändern Sie Ihre /etc/apt/sources.list (und sources.list.d / *) auf die vorherige Version (kommentieren Sie alle nicht offiziellen Repositorys).
3) apt-get Update / Aptitude-Update
4) Verwenden Sie aptitude, um Kernpakete (wie X11, Bibliotheken usw.) herunterzustufen. Es fängt an, eine Menge defekter Pakete abzufeuern ... Sie müssen also jeden Fall lösen (Sie müssen wissen, wie das in Aptitude erledigt wird). So führen Sie ein Downgrade durch, indem Sie zum Beschreibungsfeld gehen und die Version (durch Drücken von +) unten installieren.
5) Wiederholen Sie die Schritte 4 bis alle Software zu Ihrer Zielversion gehört (überprüfen Sie die Versionsspalte in aptitude).
Dies ist der Grund, warum ich diese Methode nicht empfehle:
- Es dauert viel Zeit (es ist ein schmerzhafter Prozess)
- Einige Anwendungen funktionieren möglicherweise nicht ordnungsgemäß (da sie immer noch die letzte Konfiguration haben). In diesem Fall müssen Sie "bereinigen" und erneut installieren.
- Es gibt systembezogene Updates, die nach dem Downgrade nicht funktionieren
- Es ist sehr riskant, da Sie mit einem unbrauchbaren System enden können
Ich würde dringend empfehlen, eine Neuinstallation durchzuführen und die Konfiguration nach und nach zu verschieben. Es braucht auch Zeit, aber am Ende haben Sie eine stabile Version.
Der Grund, warum ich es tat, war hauptsächlich als Experiment und als Ergebnis von Verzweiflung.
Verwandte Probleme
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
8
Laptop Standby unter Linux / Ubuntu
-
1
Wie kann ich von Ubuntu aus über das Netzwerk auf Windows Vista-Drucker zugreifen?
-
3
Kann ich Microsoft Office 2007 unter Ubuntu ausführen?
-
6
Virtualbox, VMware, KVM oder andere für Ubuntu-Virtualisierung?
-
4
Windows 7 "Aero Snap" -Funktion für Ubuntu GNOME
-
5
iPod-Verwaltungssoftware für Linux
-
1
Rückkehr von Dual-Boot zu Windows
-
2
Firefox zum Drucken von PDF-Schriftarten
-
5
Wie bekomme ich die maximale Auflösung unter Ubuntu in Microsoft Virtual PC?