Froschs Blog

Computer und was das Leben sonst noch so zu bieten hat

Zur Website | Impressum

Spaß mit MariaDB unter Devuan

22. Oktober 2020 um 16:29 Uhr von Atari-Frosch

Gestern erst motzte mich der Server wegen Jitsi-Meet und Let's Encrypt an, heute gab es schon wieder Ärger. Diesmal betraf es MariaDB, ein doch recht wichtiges Stück Software auf diesem Host.

Ich lasse früh morgens automatisch das Programm cron-apt laufen, damit ich mich um Standard-Update-Kram nicht mehr kümmern muß. Das schickt mir dann eine Mail mit dem Ablauf. Darin stand heute unter anderem das hier:

Preparing to unpack .../mariadb-server-core-10.3_1%3a10.3.25-0+deb10u1_amd64.deb ...
Unpacking mariadb-server-core-10.3 (1:10.3.25-0+deb10u1) over (1:10.3.23+maria~stretch) ...
dpkg: error processing archive /var/cache/apt/archives/mariadb-server-core-10.3_1%3a10.3.25-0+deb10u1_amd64.deb (--unpack):
trying to overwrite '/usr/bin/my_print_defaults', which is also in package mariadb-server-10.3 1:10.3.23+maria~stretch
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/mariadb-server-core-10.3_1%3a10.3.25-0+deb10u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Also lief seit ca. 4:21 Uhr der Datenbank-Server nicht mehr, und damit waren auch die Blogs, das Hardware-Wiki, der URL-Kürzer und weitere Dienste totgelegt.

Ich versuchte dann erstmal einfach einen Neustart, und der MariaDB-Server kam auch wieder hoch, als wäre nichts gewesen. Allerdings scheint das nur so: Ich startete apt upgrade nochmal manuell und bekam dieselbe Meldung wieder.

Das teilte ich im Devuan-Support-Channel im IRC-Netzwerk Freenode mit, wo ich ein paar hilfreiche Hinweise bekam. Ich wurde aufgefordert, mal nachzusehen, was in Sachen MariaDB alles installiert ist, und das Ergebnis war … sagen wir, interessant:

# dpkg -l | grep mariadb
ii libmariadb3:amd64 1:10.3.23+maria~stretch amd64 MariaDB database client library
rc mariadb-client-10.0 10.0.37+maria-1~jessie amd64 MariaDB database client binaries
ii mariadb-client-10.3 1:10.3.25-0+deb10u1 amd64 MariaDB database client binaries
ii mariadb-client-core-10.3 1:10.3.25-0+deb10u1 amd64 MariaDB database core client binaries
ii mariadb-common 1:10.3.25-0+deb10u1 all MariaDB common metapackage
rc mariadb-server-10.0 10.0.37+maria-1~jessie amd64 MariaDB database server binaries
ii mariadb-server-10.3 1:10.3.23+maria~stretch amd64 MariaDB database server binaries
ii mariadb-server-core-10.3 1:10.3.23+maria~stretch amd64 MariaDB database core server files

Da gab es also noch Überreste von früheren Debian-Versionen, die längst verschwunden sein sollten. Und die Stretch-Version des Servers lief sogar gerade noch aktiv, ohne Alternative.

Mir wurde zunächst dazu geraten, alles, was explizit Debian ist, mit apt-get purge zu entsorgen. Mit den Clients war das auch kein Problem. Den Server wollte ich nicht purgen, denn die Konfiguration war ja soweit OK. Das Paket libmariadb3:amd64 wiederum wollte ich nicht wegputzen, weil damit gleich ein paar Teile von Jitsi-Meet mit deinstalliert worden wären. Den muß ich zwar vermutlich sowieso nochmal ganz neu installieren, weil seit der gestrigen Aktion zwar das Zertifikats-Update läuft, dafür aber Jitsi-Meet selbst nur noch die Startseite zeigt (mittlerweile habe ich die beiden Java-Prozesse jitsi-videobridge2 und jicofo gestoppt, weil die mir täglich megabyte-weise Fehlermeldungen in ihre Logs geknallt haben), aber bitteschön eins nach dem anderen.

Der Hinweis, ich solle die /etc/apt/sources.list überprüfen, ging allerdings fehl: Ich hatte das Cross-Date ja im Mai gemacht und dabei alle direkten Debian-Sourcen erst auskommentiert und dann ganz rausgeworfen, auch die separaten Quellen für MariaDB; dessen Pakete stehen nämlich im Gegensatz zu Devuan bei Debian gar nicht in den Sourcen. Ich vermute eher, daß apt im Mai zunächst feststellte, daß die Version aus der neuen Quelle mit der laufenden identisch ist, und deshalb erstmal nichts veränderte. Somit lief die Version aus Stretch einfach weiter – bis zum heutigen Update.

Warum allerdings auch noch 10.0er-Versionen von Client und Server vorhanden und von apt autoremove nicht weggeputzt worden waren, muß ich wohl nicht verstehen. Da kann ich nur vermuten, daß die Maintainer da was nicht sauber konfiguriert hatten, denn die Jessie-Versionen hätten spätestens mit dem Upgrade auf Stretch verschwinden müssen.

Aber auch danach lieferte ein Update-Versuch noch denselben Fehler.

Nun gut. Es läuft ja jede Nacht ein Backup über alle Datenbanken, deshalb habe ich dann mal den MariaDB-Server gestoppt, deinstalliert und wieder neu installiert – in /var/cache/apt/packages lagen ja bereits die richtigen Versionen; die älteren waren interessanterweise gar nicht mehr vorhanden.

# apt remove mariadb-server-10.3
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
galera-3 libconfig-inifiles-perl libdbd-mysql-perl libdbi-perl libhtml-template-perl libterm-readkey-perl mariadb-client-10.3 mariadb-client-core-10.3
mariadb-server-core-10.3
Verwenden Sie »apt autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
mariadb-server-10.3
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 1 nicht aktualisiert.
2 nicht vollständig installiert oder entfernt.
Nach dieser Operation werden 74,6 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]
(Lese Datenbank ... 88382 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von mariadb-server-10.3 (1:10.3.23+maria~stretch) ...
[ ok ] Stopping MariaDB database server: mysqld.
libfreetype6:amd64 (2.9.1-3+deb10u2) wird eingerichtet ...
libmariadb3:amd64 (1:10.3.25-0+deb10u1) wird eingerichtet ...
Trigger für man-db (2.8.5-2) werden verarbeitet ...
Trigger für libc-bin (2.28-10) werden verarbeitet ...
# apt install mariadb-server-10.3
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
mariadb-server-core-10.3
Vorgeschlagene Pakete:
mariadb-test netcat-openbsd tinyca
Die folgenden NEUEN Pakete werden installiert:
mariadb-server-10.3
Die folgenden Pakete werden aktualisiert (Upgrade):
mariadb-server-core-10.3
1 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen noch 0 B von 10,2 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 73,6 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Vorkonfiguration der Pakete ...
(Lese Datenbank ... 88277 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../mariadb-server-core-10.3_1%3a10.3.25-0+deb10u1_amd64.deb ...
Entpacken von mariadb-server-core-10.3 (1:10.3.25-0+deb10u1) über (1:10.3.23+maria~stretch) ...
Vormals nicht ausgewähltes Paket mariadb-server-10.3 wird gewählt.
Vorbereitung zum Entpacken von .../mariadb-server-10.3_1%3a10.3.25-0+deb10u1_amd64.deb ...
/var/lib/mysql: found previous version 10.3
Entpacken von mariadb-server-10.3 (1:10.3.25-0+deb10u1) ...
mariadb-server-core-10.3 (1:10.3.25-0+deb10u1) wird eingerichtet ...
mariadb-server-10.3 (1:10.3.25-0+deb10u1) wird eingerichtet ...
Neue Version der Konfigurationsdatei /etc/apparmor.d/usr.sbin.mysqld wird installiert ...
Neue Version der Konfigurationsdatei /etc/default/mysql wird installiert ...
Neue Version der Konfigurationsdatei /etc/init.d/mysql wird installiert ...
Neue Version der Konfigurationsdatei /etc/logcheck/ignore.d.server/mariadb-server-10_3 wird installiert ...
Konfigurationsdatei »/etc/logrotate.d/mysql-server«
==> Geändert (von Ihnen oder von einem Skript) seit der Installation.
==> Paketverteiler hat eine aktualisierte Version herausgegeben.
Wie möchten Sie vorgehen? Ihre Wahlmöglichkeiten sind:
Y oder I : Die Version des Paket-Betreuers installieren
N oder O : Die momentan installierte Version beibehalten
D : Die Unterschiede zwischen den Versionen anzeigen
Z : Eine Shell starten, um die Situation zu begutachten
Der Standardweg ist das Beibehalten der momentanen Version.
*** mysql-server (Y/I/N/O/D/Z) [Vorgabe=N] ?
Neue Version der Konfigurationsdatei /etc/mysql/debian-start wird installiert ...
[ ok ] Starting MariaDB database server: mysqld.
Trigger für man-db (2.8.5-2) werden verarbeitet ...

Die Installationsliste sieht jetzt auch viel schöner aus:

# dpkg -l | grep mariadb
ii libmariadb3:amd64 1:10.3.25-0+deb10u1 amd64 MariaDB database client library
ii mariadb-client-10.3 1:10.3.25-0+deb10u1 amd64 MariaDB database client binaries
ii mariadb-client-core-10.3 1:10.3.25-0+deb10u1 amd64 MariaDB database core client binaries
ii mariadb-common 1:10.3.25-0+deb10u1 all MariaDB common metapackage
ii mariadb-server-10.3 1:10.3.25-0+deb10u1 amd64 MariaDB database server binaries
ii mariadb-server-core-10.3 1:10.3.25-0+deb10u1 amd64 MariaDB database core server files

Und der Server läuft wieder. Die nächsten Updates sollten jetzt ohne Versionszusammenstöße ablaufen. Also, eigentlich. Denn im Support-Channel kam noch eine interessante Bemerkung:

[15:27:35] gnarface Atari-Frosch: the way it is named might override even later versions though, is the thing. the rules are a little weird
[15:28:09] gnarface the "+maria~stretch" thing might sabotage 10.5

Das könnte also nochmal Spaß geben …


History

Kommentieren

Bitte beachte die Kommentarregeln!

XHTML: Du kannst diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>