Kontact bzw. der Akonadi-Unterbau sind so ein Thema für sich. Ein Paradebeispiel für Overengineering aber bei KDE hält man stoisch daran fest. Wer also einen konsistenten KDE-Arbeitsplatz haben möchte, kommt nicht daran vorbei. Leider sind die Abhängigkeiten bei Kubuntu 22.04 schlecht gesetzt. Eine Alternative mit PostgreSQL steht aber bereit.
Viele Fehlentscheidungen aus den frühen KDE 4-Zeiten haben die KDE-Entwickler inzwischen korrigiert – Akonadi leider nicht. Die längere Zeit in Entwicklung befindliche Alternative Kube ist eingeschlafen und auch neue Apps wie Kalendar basieren im Hintergrund leider weiter auf Akonadi. Viele grobe Bugs sind ausgeräumt, aber das vollkommen überdimensionierte Backend ist immer noch ein Garant für Probleme und Schwierigkeiten. Warum es für die Speicherung von Mails und PIM-Einträge so ein gewaltiges Backend braucht, wo doch Thunderbird und Evolution ohne auskommen, konnte nie jemand stimmig erklären. Wie so oft gilt hier vermutlich Entwicklerspaß vor Nutzerinteressen.
KDE-Anwender müssen also leider weiter mit Akonadi leben. Die Kubuntu-Entwickler haben als seit 20.04 als Standard Thunderbird vorgesehen (was schon ein Statement für sich ist), aber Kontact & Co natürlich weiter in den Paketquellen. Leider nicht besonders durchdacht. Das Paket akonadi-backend-mysql verweist nämlich auf MariaDB. Ich vermute, das hat man einfach von Debian übernommen. Leider setzt Canonical im Gegensatz zu vielen anderen Distributoren nicht auf MariaDB, sondern hält MySQL die Treue. MariaDB ist nur in Universe enthalten und hat somit einen nicht garantierten Sicherheitsstatus.
Die Derivate bzw. Universe und Sicherheit sind ein Thema für sich, das hier nicht im Detail diskutiert werden kann. Grundsätzlich ist nicht jede Software sicherheitskritisch und zumindest beim KDE-Stack verfolge ich das Thema engmaschig genug, um prüfen zu können, ob Kubuntu hier Probleme behebt. Die Basis (macht bei Installation hier circa 1200 von 1900 Paketen aus) wird ja direkt von Canonical gepflegt. Bei Software wie MariaDB hört aber bei mir die Toleranz auf, wenn es um nicht geschlossene Sicherheitslücken geht.
Zum Glück gibt es noch ein weiteres Akonadi-Backend und zwar das für PostgreSQL. Das ist nicht schlecht gepflegt, da einer der Kern-Entwickler von Kontact viele Jahre selbst PostgreSQL als Backend nutzte. Entwickler beheben Bugs ja auch gerne für sich selbst – warum also nicht davon profitieren? Der Vorteil für Kubuntu-Nutzer ist, dass PostgreSQL in main liegt und direkt von Canonical unterstützt wird.
Vorher unbedingt ein Backup machen. Das Szenario geht davon aus, dass E-Mails und PIM-Daten lediglich via IMAP und Cal-/CardDAV eingebunden sind und somit nicht verloren gehen können.
Der Umstieg ist ziemlich leicht. Zuerst Akonadi stoppen und das neue Backend installieren:
$ akonadictl stop
$ sudo apt install akonadi-backend-postgresql
Anschließend noch die Benutzerkonfiguration in der Datei ~/.config/akonadi/akonadiserverrc ändern:
[%General]
Driver=QPSQL
[QPSQL]
Host=/tmp/akonadi-<benutzername>.hash
InitDbPath=/usr/lib/postgresql/14/bin/initdb
Name=akonadi
Options=
ServerPath=/usr/lib/postgresql/14/bin/pg_ctl
StartServer=true
Code-Sprache: JavaScript (javascript)
Nun noch die alte MariaDB-Daten löschen, indem man das Verzeichnis ~/.local/share/akonadi/db_data umbenennt in z. B. db_data_bak. Sollte die Migration erfolgreich sein, kann es später gelöscht werden.
Nun noch Akonadi wieder starten und prüfen. Sollte es Probleme geben, wird hier auch aufgelistet, wo es klemmt.
$ akonadictl start
$ akonadictl fsck
Nun läuft Akonadi mit einem offiziell supporteten Backend. Negative Erfahrungen für Stabilität und Performance kann ich nicht berichten.
Tipo? “Alternative Kube ist eingeschlaGen” statt “eingeschlaFen” ?
Danke. Da war der Wunsch Vater des Gedankens 😉
Alternative https://store.kde.org/p/998901 Plasma Kalender Widget ohne jegliche Akonadi Abhängigkeit.
Und woher bezieht der die Termine? Google Calendar?
Hallo,
Unter Debian (und damit vermutlich auch unter ubuntu) sollte auf jeden Fall der Zeichensatz “en_US.utf8” installiert sein, sonst steigt der initdb-Prozess von postgresql aus. Das geht unter root mit dem Kommando “locale_gen” und dann entsprechend auswählen. Danach ein “systemctl restart postgresql.service” und ein akonadi-Neustart und die Sache flutscht.
Mein Eindruck ist, das kmail via postgresql deutlich performanter reagiert.