Linux: SQLite-Datenbank mit LibreOffice Base nutzen

Wer unter Linux Textverarbeitung innerhalb einer grafischen Benutzeroberfläche betreiben möchte, kommt an LibreOffice praktisch nicht vorbei. Die Office-Suite bietet mit ihren Modulen praktisch alles, was man im Büroalltag braucht. Die Textverarbeitung erfolgt dabei mit dem Modul LibreOffice Writer. Mit dem Modul LibreOffice Base ist der Zugriff auf und die Verwaltung von relationalen Datenbanken möglich. Darüber hinaus gibt es noch einige weitere Module, die jedoch für diesen Blogbeitrag nicht relevant sind. Beschreibungen der einzelnen Module sind über die LibreOffice-Startseite zu finden.

In meinem konkreten Anwendungsfall wollte ich einen Brief an mehrere Empfänger schicken. Der Brief war für alle Empfänger gleich. Somit bot sich die Funktion Serienbrief-Assistent von LibreOffice Writer an. Diese Funktion ist bei einer Installation unter Linux über den Menüpunkt Extras -> Serienbrief-Assistent erreichbar. Die Einstellungen im Serienbrief-Assistent sind praktisch selbsterklärend und sollen daher nicht Gegenstand dieses Blogbeitrags sein.

Die Adressen für den Serienbrief lagen mir bereits als SQLite-Datenbank vor. Allerdings konnte ich die Datenbank nicht öffnen, da LibreOffice SQLite nicht standardmäßig unterstützt. Um diese Unterstützung einzurichten sind folgende Schritte erforderlich.

Falls nicht bereits auf dem System vorhanden, muss ODBC in Form von unixODBC installiert werden. Unter Arch Linux erfolgt die Installation mit sudo pacman -Syu unixodbc.

Anschließend kann direkt der ODBC-Treiber für SQLite installiert werden - unter Arch Linux mit sudo yay -Syu sqliteodbc. Der ODBC-Treiber für SQLite ist im Arch User Repository (AUR) zu finden. Daher die Installation mit yay anstelle von pacman.

Im nächsten Schritt muss der ODBC-Treiber konfiguriert werden, sofern das nicht bereits während der Installation automatisch erfolgt ist. Die Konfiguration erfolgt über die Datei /etc/odbcinst.ini. In meinem Fall war die Datei bereits vorhanden und sah folgendermaßen aus:

[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/lib64/libsqlite3odbc.so
Setup=/usr/lib64/libsqlite3odbc.so
Threading=2
UsageCount=1

[SQLite]
Description=SQLite ODBC Driver
Driver=/usr/lib64/libsqlite3odbc.so
Setup=/usr/lib64/libsqlite3odbc.so
Threading=2
UsageCount=1
	

Sollte die Datei nicht vorhanden bzw. leer sein, müssten die Einträge entsprechend nachgeholt werden. Mit vim z. B. so: sudo vim /etc/odbcinst.ini. Die Pfade können auf anderen Distributionen ggf. abweichen und sollten überprüft werden.

Als Nächstes erfolgt dann die Konfiguration der Zugangsdaten. Unter ODBC bezeichnet man diese Datenstruktur als DSN (Data Source Name). Ich habe mich für eine Benutzer-DSN in Dateiform entschieden. Weitere grundlegende Informationen zu DSNs finden sich im entsprechenden Wikipedia-Eintrag. Mit sudo vim ~/.odbc.ini muss dazu ein entsprechender Eintrag angelegt werden, der die Datenquelle beschreibt. In meinem Fall sieht die Datei so aus.

[Adressen]
Description=Adressen für Serienbrief
Driver=SQLite
Database=/home/user/adressen.db

Anschließend sollte die SQLite-Datenbank mit den Adressen für den Serienbrief-Assistenten von LibreOffice Writer zur Verfügung stehen. Wie man einen Serienbrief mit LibreOffice Writer erstellt, findet sich z. B. bei der Document Foundation. Dort ist auch ein Video auf Youtube verlinkt, das die Erstellung eines Serienbriefs in Form einer Schritt-für-Schritt-Anleitung zeigt.

Nachtrag: Anstatt von ODBC hätte ich auch JDBC als Datenbankschnittstelle wählen können. LibreOffice kann Datenbanken schließlich auch über diese Schnittstelle ansprechen. Allerdings wäre die Installation von JDBC deutlich umfangreicher gewesen, weshalb ich mich für ODBC entschieden habe. Die Installation des Treibers und die Konfiguration sähe mit JDBC natürlich auch anders aus.