darktable, Linux Mint und die Flatpaks
veröffentlicht am 08.08.2022 - aktualisiert am 11.08.2022 in * PROGRAMME * SOFTWARE *
Inhaltsverzeichnis
Vor längerer Zeit hatte ich in einem Artikel beschrieben, wie man darktable auch auf 2 verschiedenen Rechnern synchron halten will, wenn man z. B. einen Laptop für Reisen benutzt und zu Hause lieber am ausgewachsenen Desktop-PC arbeitet.
Nebenbemerkung: Die Erkenntnisse spielen auch eine Rolle im Zusammenhang mit dem Backup der Daten bei Verwendung von darktable.
Das Problem
Ein Leser schildert, daß er seit 4 Jahren mit darktable arbeitet, zunächst auf Mac und danach auf je einem Laptop und einem Desktop-Computer unter Linux Mint (in derselben Version). Und er meint:
Ich bin kein Computer-Spezialist und brauche einen Ratschlag.
Und über sein Vorgehen schreibt er:
Die Bilddateien liegen auf einer externen SSD. Da habe ich dann jeweils für die Reise die Ordner config und cache vom Desktop zum Laptop kopiert; und nach der Reise umgekehrt vom Laptop zum Desktop. Das hat immer bestens funktioniert.
Seit dem Wechsel zu Linux Mint scheint es ihm, als ob da eine gewisse Unordnung in sein Bildarchiv gekommen sei, also offenbar die Datenbank nicht wirklich alle Bilder anzeigt wie er das erwartet.
Was war neu in Mint 20 - und hat das Einfluss auf die Datenbank?
Grundannahme
Wie in dem oben erwähnten Artikel schon beschrieben, sind für die Funktion von darktable 3 Orte wichtig, die ich ‘blind’ immer so benannt habe, wenn es um Linux ging:
/home/[benutzername]/.cache/darktable
/home/[benutzername]/.config/darktable
/home/[benutzername]/[Pfad/zu/den/Bildern]
Das ist eigentlich einfach … eigentlich …
Die Abweichung
Zu etwa dem Zeitpunkt, als der Leser von Mac nach Linux wechselte, hab ich Linux Mint in Richtung Debian verlassen … mithin die Entwicklung dort der letzten Jahre nicht wirklich verfolgt.
Wohl aber war mir im Hinterkopf hängengeblieben, daß es im Ubuntu-Umfeld (auf dem Linux Mint basiert) heftige Diskussionen um snap
als Programmverteil-Format gegeben hatte - und das war dann der Ansatz der Überlegungen.
Aus dem deutschsprachigen Benutzerhandbuch von Linux Mint geht hervor, daß die Macher von Linux Mint nicht das Canonical(Ubuntu)-eigene Format snap
unterstützen, sondern das offene Flatpak
-Format.
Exkurs: Linux - wie kommt Software auf den Rechner?
Früher war das ’einfach’ - zumindest was den ‘Otto Normaluser’ angeht:
In der Linux-Sphäre herrscht sog. ‘freie Software’ vor, die in Distributionen verteilt wird, wie hier beschrieben. Das macht eine sehr modulare Vorgehensweise bei der Erstellung von Programmen möglich - nicht jeder Programmierer muß alle Funktionen selbst programmieren, er kann auf Bestandteile anderer Programme zurückgreifen (Bsp.: eine überall gebrauchte Funktion ist der Dialog zum Öffnen einer Datei). Das Ganze greift wie ein Puzzle zusammen und macht die eigentlichen Programmpakete eines Linux-Systems sehr klein, wie dieser Vergleich zeigt.
Aber das hat auch Nachteile: Das Puzzle muß zusammenpassen, also ist man darauf angewiesen, daß eine bestimmte Version eines Programms (z. B. darktable) auch zur Version des Desktops und der Distribution überhaupt passt.
Verwirrung und die Container-Formate
Um den genannten Haupt-Nachteil zu beheben und die Weitergabe von neuen Software-Versionen zu vereinfachen, haben sich sog. Container-Formate herausgebildet:
Diese führen zwar zu einer gewissen Entkopplung der Versionsabhängigkeiten, schleppen aber jeweils zusätzlich “den halben Desktop” mit an Bord, was den erforderlichen Speicherplatz massiv anwachsen lässt.
Hier aber viel interessanter ist eine weitere Eigenschaft dieser Formate - die dem besagten ‘Otto Normaluser’, der sich mit diesen ganzen Hintergründen nicht beschäftigt, Kopfzerbrechen bereiten kann.
Linux Mint 20 und die Flatpaks
Anmerkung: In den Screenshots meines Testsystems heißt der Benutzer mint
- in den Pfadangaben ist hier stattdessen natürlich der eigene Benutzername einzusetzen
Installation
Sucht man auf einem frischen Testsystem von Linux Mint 20.x in der Anwendungsverwaltung nach dem Paket darktable
, so bekommt man zweierlei angeboten:
Wählt man den ersten Eintrag, so erhält man die Version 3.0, die damals, als Linux Mint 20 veröffentlicht wurde, eben aktuell und in das normale Paketverwaltungssystem/Repository eingebunden war:
Der zweite Eintrag liefert die aktuelle Version 4.0, ist aber mit (Flatpak) gekennzeichnet.
Anstelle von 5,8MB werden hier 786MB heruntergeladen, im nächsten Schritt wird auch klar, warum: zusätzlich zum darktable-Paket wird etliche Plattform-Software zum Gnome-Desktop etc. mitgeschleppt.
Nachdem ich auf meinem Testsystem beide Installationsvarianten durchgeführt habe, erscheinen logischerweise auch zwei Einträge im Programm-Menü:
Wo stecken die Programmdaten?
Methode 1: Normale Installation mit Paketmanager der Distribution
Hier liegen die Konfigurationsdaten von darktable - inclusive der Bilddatenbank - ganz “normal” im versteckten Ordern .config
im Benutzerverzeichnis:
Dort im Unterordner darktable
finden sich die entsprechenden Dateien:
Methode 2: Flatpak
Wurden Programme per Flatpak installiert und mal aufgerufen, dann taucht zusätzlich im Benutzerverzeichnis ein versteckter Ordner .var
auf:
Und in einer endlosen Kette von Unterverzeichnissen stößt man schließlich auf zwei Ordner config
und cache
- im ersteren dann wiederum einen Unterordner darktable
und in diesem finden sich dann die entsprechenden Dateien:
Im erwähnten Unterordner cache
findet sich im weiteren Unterordner darktable
der Cache, der die Vorschaubilder für den Leuchttisch enthält (in mipmaps-xxx
und entsprechenden Unterordnern, sortiert nach der Bildgröße):
Analyse und Schlussfolgerungen daraus
Wie wurde darktable installiert?
Wer nicht mehr genau weiß, wie er darktable auf den Rechner geholt hat, kann sich so helfen:
Wenn die Ausgabe des Terminals auf das Kommando
~$ dpkg -l | grep darktable
eine derartige Ausgabe liefert
ii darktable 3.0.1-0ubuntu1 amd64 virtual lighttable and darkroom for photographers
dann wurde darktable ’traditionell’ über den Paketmanager installiert und die zugehörigen Konfigurations- und Cache-Verzeichnisse entsprechen den eingangs genannten Pfaden:
/home/[benutzername]/.cache/darktable
/home/[benutzername]/.config/darktable
Bleibt hier die Ausgabe leer, dann muß darktable anders installiert worden sein. Für Linux Mint naheliegend ist dann der Test auf Flatpak:
~$ flatpak list
Ausgegeben wird eine Liste der Flatpak-Programme in dieser Form:
Name Application ID Version Zweig Installation
darktable org.darktable.Darktable 4.0.0 stable system
Mesa …esktop.Platform.GL.default 21.3.8 21.08 system
openh264 …edesktop.Platform.openh264 2.1.0 2.0 system
GNOME Application Pla… org.gnome.Platform 42 system
Mint-Y Gtk Theme org.gtk.Gtk3theme.Mint-Y 3.22 system
(Wer’s gern ausführlicher hat, der kann auch ~$ flatpak list --show-details
ausprobieren, und ~$ du -hs /var/lib/flatpak
gibt Auskunft über den durch die Flatpak-Sonderveranstaltung verbrauchten Speicherplatz (auf dem Testsystem waren das 1,9GB)).
Wenn hier eine Zeile mit darktable
auftaucht, dann sind die hierfür zugehörigen Konfigurations- und Cache-Verzeichnisse unter diesen Pfaden zu finden:
/home/[benutzername]/.var/app/org.darktable.Darktable/config/darktable
/home/[benutzername]/.var/app/org.darktable.Darktable/cache/darktable
Installation bereinigen
Liefern beide Abfragen, also sowohl dpkg -l
als auch flatpak list
eine Ausgabe über darktable, dann sollte man sich entscheiden, welche Version man in Zukunft nutzen will - alles andere führt zu ‘Chaos’
- sowohl bzgl. möglicher inkompatibler
.xmp
-Dateien in den Bildverzeichnissen bei unterschiedlichen darktable-Versionen - als auch der Problematik, daß man nie genau weiß, welche Bilder in welcher Installation zu finden sind.
Wer ganz sorgfältig arbeitet, der kann dann auch die nicht mehr benötigten Konfigurations- und Cache-Verzeichnisse anhand der obigen Beschreibung entfernen.
Schlussfolgerungen? oder doch nicht?
Eigentlich dachte ich, mit diesen Hinweisen das Problem des Lesers eingegrenzt und eine Lösung für die Synchronisation der beiden Rechner geliefert zu haben - eben je nach Installationstyp.
Aber dann erreichte mich diese Meldung:
Der Leuchttisch zeigte keine Bilder an. Nach dem erneuten Importieren schon und die konnte ich auch problemlos öffnen.
Ich dachte, ich hätte vielleicht die Unterordner nicht mit importiert. Das habe ich nachkontrolliert und später auch noch den gesamten Ordner, also ~/.var/app/org.darktable.Darktable als Ganzes mit den Unterordnern cache und config kopiert und synchronisiert, und kontrolliert, ob auch alles auch vorhanden ist.
An dieser Stelle muß ich jetzt erstmal passen, was die Flatpak-Geschichte angeht. Sicherlich kann man sich jetzt tagelang durch die Dokumentation der Innereien von Flatpak lesen … vielleicht läßt sich da dann ergründen, welche qirks da versteckt sind.
Ich beschloß dagegen, einen anderen Weg zu gehen:
Weg mit dem Flatpak …
Wie komme ich wieder zur “guten alten Installation”?
Flatpak-Installation entfernen
über die Anwendungsverwaltung - genauso, wie die Software installiert wurde.
Installation der aktuellsten Version über externes Repository
Im darktable-Projekt-Umfeld gibt es glücklicherweise eine Reihe Maintainer, die für gängige Distributionen die jeweiligen nativen Pakete bauen und zur Verfügung stellen. Diese finden sich bei OBS.
Man kann hier Pakete händisch herunterladen und dann einzeln installieren, der empfohlene und einfachere Weg ist aber, dieses Repository in die Paketverwaltung einzubinden. Hier soll dieser Weg am Beispiel der vom Leser verwendeten Distribution LinuxMint 20.3 beschrieben werden, dafür sind die Pakete von Ubuntu 20.04 zu verwenden.
Paketquellen eintragen
Dies erfolgt durch Eingabe des folgenden Befehls im Terminal
mint@mint:~$ sudo echo 'deb http://download.opensuse.org/repositories/graphics:/darktable/xUbuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/graphics:darktable.list
mit der Antwort
deb http://download.opensuse.org/repositories/graphics:/darktable/xUbuntu_20.04/ /
Key eintragen
Dies ist nötig, damit die Paketverwaltung des Systems die neu eingegebene Paketquelle als vertrauenswürdig einstuft, der Befehl für das Terminal lautet:
mint@mint:~$ sudo curl -fsSL https://download.opensuse.org/repositories/graphics:darktable/xUbuntu_20.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/graphics_darktable.gpg > /dev/null
Überprüfung der ergänzten Paketquellen:
Der Erfolg kann in den Anwendungspaketquellen überprüft werden. Es muß
-
der Eintrag Opensuse mit dem entsprechenden Pfad unter Zusätzliche Paketquellen gelistet sein:
-
weiters muß der Schlüssel in der Rubrik Legitimierungsschlüssel zu finden sein:
An dieser Stelle kann jetzt eine Aktualisierung der Paketinformationen des Systems erfolgen:
mint@mint:~$ sudo apt-get update
(...)
Holen:3 http://download.opensuse.org/repositories/graphics:/darktable/xUbuntu_20.04 InRelease [1.533 B]
und eine Anzeige der aktualisierbaren Pakete zeigt für darktable
mint@mint:~$ sudo apt list --upgradable
Auflistung... Fertig
(...)
darktable/unbekannt 4.0.0-1.1 amd64 [aktualisierbar von: 3.0.1-0ubuntu1]
Aktualisierung auf darktable 4.0
Anwendungsverwaltung
Die Anwendungsverwaltung zeigt weiterhin nur die Version 3.0.1 an … hat offenbar nix von den ergänzten Paketquellen mitbekommen:
Terminal
auch hier scheitert der erste Versuch, darktable wird als zurückgehalten beschrieben:
mint@mint:~$ sudo apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden Pakete sind zurückgehalten worden:
darktable
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
Synaptik
Synaptik ist die zweite Möglichkeit, Software zu installieren mittels einer grafischen Oberfläche. Hier werden beide Versionen korrekt gelistet: sowohl die installierte Version 3.0.1 als auch die zur Verfügung stehende neue Version 4.0:
Ein Rechtsklick auf die Zeile liefert aber keine Option der Aktualisierung, sondern nur diejenige, darktable (hier 3.0.1) zu entfernen. Führt man dies durch, dann sehen die Einträge so aus:
Darktable könnte jetzt von hier aus installiert werden, aber an dieser Stelle hab ich nochmal die Installation über das Terminal versucht - also tatsächlich die Installation, nicht die Aktualisierung (die alte Version wurde im vorherigen Schritt ja entfernt):
mint@mint:~$ sudo apt install darktable
Paketlisten werden gelesen... 0% Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
fonts-roboto fonts-roboto-unhinted libportmidi0
Die folgenden NEUEN Pakete werden installiert:
darktable fonts-roboto fonts-roboto-unhinted libportmidi0
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 9 nicht aktualisiert.
Es müssen 8.407 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 36,6 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
(...)
Vormals nicht ausgewähltes Paket darktable wird gewählt.
Vorbereitung zum Entpacken von .../darktable_4.0.0-1.1_amd64.deb ...
Entpacken von darktable (4.0.0-1.1) ...
(...)
Die Installation läuft jetzt durch und zu guter Letzt zeigt das Startmenü den/nur einen Eintrag für darktable:
Start von darktable 4.0 in herkömmlicher Installation
Nach Start des Programms erscheint zunächst die Update-Meldung für die Datenbank für die Programm-Einstellungen:
und nachdem das Programm das erste Mal gelaufen ist, finden sich auch die Updates für die beiden Datenbanken data.db
und library.db
incl. der beiden Sicherungsdateien data.db-pre-4.0.0
und library.db-pre-4.0.0
im “richtigen” Verzeichnis, also .config/darktable
:
Schlussfolgerungen - jetzt tatsächlich :)
Im aktuellen Linuxmint muß man sehr aufpassen bzgl. der Installation von Software insbesondere dann, wenn man aus dem einen oder anderen Grund auf die Konfigurationsdaten der Software zugreifen will - zum Beispiel, weil man die Konfiguration der Software auf zwei Rechnern gleich halten will.
Das quasi nahtlos in die Anwendungsverwaltung integrierte Flatpak speichert seine Konfigurationsdaten an einem anderen Ort.
Die Installation der Software aus einem Dritt-Repository verhindert Unsicherheiten bezüglich des Ortes eben dieser Konfigurationsdateien, der bekannte Workflow kann beibehalten werden.
Der anfragende Leser bestätigte nach dieser Aktion:
Meine darktable-Installation läuft wieder wie “zu guten alten Zeiten” - herzlichen Dank.
Und so soll das auch sein …
1904 Worte - Lesezeit: 9 Minute(n)
weitere Artikel
Adobe aus allen Wolken?
30.10.2019 Zwei Meldungen gehen dieser Tage wieder durch die Medien, die meine Zweifel an Cloud- und Abo-Modellen nicht gerade zerstreuen helfen. Beide betreffen zwar 'nur' Adobe, aber wenn man weiterdenkt ...
darktable 4.8 erschienen - Farb-Equalizer und Bildkomposition
21.06.2024 Die Sommer-Ausgabe für darktable im Jahr 2024 ist erschienen - darktable 4.8 wurde heute veröffentlicht. Ein Überblick über die neuen Features und sonstigen wichtigen Änderungen ...
darktable: Beschreibung für Umsteiger
04.04.2024 Wer umsteigen will von einem vertrauten RAW-Konverter, der tut sich gelegentlich nicht wirklich leicht bei der Vielzahl der Funktionen dieser Programme. Und wenn dann die Anordnung 'sehr anders' ist ... könnte eine systemmatische Einführung helfen.
Zweite Instanz von darktable für Linux - die einfache Variante
10.01.2024 Wer den Entwicklungsfortschritt von darktable verfolgen möchte, neue zu erwartende Features schon mal vorab ansehen und testen, der kann die Entwicklungsversion ('Master') installieren. Dabei aber gleichzeitig die eigene Arbeit mit einer stabilen Version nicht zu gefährden - darum geht es in diesem Beitrag ...