Wie kann ich einen "apt-get upgrade" -Befehl unter Ubuntu rückgängig machen oder zurücksetzen?

76784
jjclarkson

Gibt es in Ubuntu eine Möglichkeit, das letzte Upgrade rückgängig zu machen oder es rückgängig zu machen, apt-get upgradewenn Sie die Ergebnisse nicht mögen?

24
Wenn Sie kein dist-upgrade durchgeführt haben, sehe ich nicht, welche Ergebnisse dort nicht gewünscht werden, da dies höchstwahrscheinlich ** Sicherheitsupdates ** ist. LiraNuna vor 14 Jahren 0
Wenn es sich um einen Server handelt, versuchen Sie es mit einem Dev-Server, bevor Sie den Produktionsserver aktualisieren solarc vor 14 Jahren 2
Nicht ohne viel Arbeit, das wäre es nicht wert. Können Sie Ihr Zuhause sichern und von vorne beginnen? Was hat dir nicht gefallen? user10547 vor 14 Jahren 0
Ich habe es noch nicht getan, aber dies ist ein Produktionsserver, und ich muss sicherstellen, dass es keine Inkompatibilitäten mit unserem benutzerdefinierten PHP / MySQL / Apache2-Setup gibt, und schnell zurückkommen, falls vorhanden. Ich möchte ein Upgrade durchführen, da ich denke, dass dadurch ein anderes Problem behoben wird. jjclarkson vor 14 Jahren 0
Wenn Sie eine benutzerdefinierte Installation haben, liegt es in Ihrer Verantwortung, Patches zu speichern und auf die aktuelle Version anzuwenden. LiraNuna vor 14 Jahren 0
Ich würde es zuerst in dev ausführen, besonders wenn es sich um einen wichtigen Server handelt. Sie können einige Vorsichtsmaßnahmen treffen, aber eine exakte Kopie Ihrer Produktionsumgebung wäre am besten. user10547 vor 14 Jahren 0
Ich denke, dass wir am Ende unsere Software auf einem Entwicklungscomputer testen werden. Das mögliche Problem ist, dass unsere Testhardware nicht völlig homogen ist. jjclarkson vor 14 Jahren 0

11 Antworten auf die Frage

5
user28725

aptitudegibt Ihnen Zugriff auf alle Versionen eines Pakets, sofern dies gemäß der Debian-Paketverwaltung verfügbar ist .

2.7.3 kann Ihnen dabei helfen, auf stabil umzusteigen. 2.7.16 erläutert das Speichern und Wiederherstellen des Dpkg-Status. Mit dpkg-repack können Sie ein einzelnes Paket "komprimieren". joeytwiddle vor 11 Jahren 0
5
Manav Brar

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 erwarte, dass alle hier die Grundlagen zum Nachschlagen des letzten anstößigen Updates kennen: Manav Brar vor 11 Jahren 1
Worum ging es bei der Bearbeitung? Hast du noch eine Frage? Möchten Sie, dass wir ein Ratespiel spielen? slhck vor 11 Jahren 2
5
aecolley

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.

3
Andreas Kohlbecker

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.

2
David Spillett

Ich glaube nicht, beiseite eine vollständige Sicherung der relevanten Dateisysteme von der Einnahme (jene, die enthalten /, /bin, /lib, /sbin, /usr, /var, /etcund /boot(die alle auf auf Dateisystem sein kann) und Ihr Boot Record), so können Sie das Gerät danach zurück rollen.

Ich könnte (und wird wahrscheinlich auch) ein Bare-Metal-Backup machen, aber ich wollte eine Software-Option, mit der ich das Upgrade in einem schnelleren Zeitraum rückgängig machen kann. Die Wiederherstellung von der Bare-Metal-Sicherung kann mehrere Stunden dauern. jjclarkson vor 14 Jahren 0
Sie können sicherstellen, dass Sie Kopien aller Pakete haben, die Sie in den vorherigen Versionen aktualisieren möchten (diese befinden sich wahrscheinlich immer noch in Ihrem apt-Cache irgendwo in `/ var`) und alle relevanten Konfigurationsdateien werden gespeichert. Sie könnten dann versuchen, ein Rollback durchzuführen, indem Sie explizit `dpkg` anweisen, diese Versionen zu installieren. Möglicherweise müssen Sie danach noch einige Arbeit erledigen, wenn Sie möchten, dass die normalen Upgrades durchgeführt werden. Daher würde ich dies nicht empfehlen. David Spillett vor 14 Jahren 1
Eine mit rsync erstellte Sicherung (Zeitstempel aktiviert) kann im Vergleich zu einer mit tar erstellten Sicherung relativ schnell wiederhergestellt werden. joeytwiddle vor 11 Jahren 0
2
Brain2000

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.

1
solarc

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.

1
Ryan Thompson

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.

1
Rucent88

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 /

0
lepe

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.