Nextcloud Update-Fehler durch Versionssprung

Version 19.1 von Tom Altenbrunn am 2023/01/24 08:16

Kommt es nach dem ldupdate zu einem Überspringen einer Major-Version von Nextcloud, kann es dazu führen, dass diese trotz ausreichend vieler pruns nicht mehr erreichbar ist.
Im Folgenden ein Fallbeispiel dazu. Ein LogoDIDACT Server wurde viele Monate lang nicht aktualisiert und der Aufruf von ldupdate führte deshalb dazu, dass Nextcloud sich gleich um zwei Major-Versionen von 20.x auf 22.x aktualisiert hat.

  1. Ausgangslage
  2. Gewöhnliche Aktualisierung per ldupdate
  3. Lösung des Problems durch gezieltes Aktualisieren aller Nextcloud Hauptversionen, die dazwischen liegen

Ausgangslage

Zu sehen ist zunächst jeweils der Puppet- und Nextcloud-Versionsstand vor der Aktualisierung des Servers.

01_nextcloud-version_pre-ldupdate.png

02_puppet-version_pre-update.png

Gewöhnliche Aktualisierung per ldupdate

Führt man ein ldupdate und anschließend einen prun im LXC-Container nextcloud-g1 aus, sieht man, wie die neuen Pakete installiert werden.

03_nextcloud-1st-prun_after-ldupdate.png

In diesem Beispiel sieht man anhand der Server-Logs, dass Nextcloud einen Sprung von 20.0.7 auf 22.2.0 gemacht hat. Die Major-Version 21.x wurde übersprungen, wodurch das eingangs erwähnte Problem ausgelöst wird.

04_nextcloud-new-packages_after-ldupdate.png

Bei einem zweiten prun im Container ist dann dieser Fehler zu sehen:

05_nextcloud-2nd-prun_after-ldupdate_error-major-version.png

Lösung des Problems durch gezieltes Aktualisieren aller Nextcloud Hauptversionen, die dazwischen liegen

Um den Fehler zu beheben, muss man auf die ursprünglich übersprungene Major-Version downgraden. Über das Kommando im nächsten Screenshot kann man sich die verfügbaren Paketversionen anzeigen lassen.
In diesem Fall kommt die Version 21.0.2 in Frage.

1645179101612-273.png

Nun installiert man die Pakete ld-nextcloud sowie ld-nextcloud-fix in der benötigten Version (durch strikte Angabe der Versionsnummer im APT-Paketmanager).

Hinweis: Beide Pakete sollten immer dieselbe Versionsnummer erhalten.

07_nextcloud_install-major-versions_step-by-step.png

Wichtig: Seit Nextcloud-Version 23.0.11 ist das Paket ld-nextcloud-fix nicht mehr vorhanden. Stattdessen ausschließlich das ld-nextcloud Paket  in der benötigten Version installieren!

Es ist wichtig, nach jedem Versionssprung einen prun auszuführen, damit die Aktualisierung der Nextcloud sowie der zugehörigen Apps per OCC durch Puppet ausgeführt wird. Jetzt hat die Nextcloud die Version 21.0.2.

08_nextcloud_necessary-prun-after-package-upgrade_for-each-major-version.png

Anschließend kann man das nächste Paketbundle (d.h. ld-nextcloud sowie ld-nextcloud-fix in einer nächsthöheren Hauptversion) installieren und führt danach wieder einen prun aus.

09_nextcloud_install-next-major-version_step-by-step.png

10_nextcloud_next-prun-after-package-upgrade_major-version.png

Die Nextcloud ist in diesem Beispiel auf der aktuellsten Version und es stehen keine weiteren Upgrades zur Verfügung. Dies wurde abschließend durch Aufruf des Kommandos apt-get upgrade verifiziert.

11_nextcloud_no-more-upgrades_finish.png