zur Startseite

Druckausgabe von https://www.bilddateien.de/
bilddateien.de

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:

=Bildbeschreibung=

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:

=Bildbeschreibung=

Der zweite Eintrag liefert die aktuelle Version 4.0, ist aber mit (Flatpak) gekennzeichnet.

=Bildbeschreibung=

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.

=Bildbeschreibung=

Nachdem ich auf meinem Testsystem beide Installationsvarianten durchgeführt habe, erscheinen logischerweise auch zwei Einträge im Programm-Menü:

=Bildbeschreibung=

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:

=Bildbeschreibung=

Dort im Unterordner darktable finden sich die entsprechenden Dateien:

=Bildbeschreibung=

Methode 2: Flatpak

Wurden Programme per Flatpak installiert und mal aufgerufen, dann taucht zusätzlich im Benutzerverzeichnis ein versteckter Ordner .var auf:

=Bildbeschreibung=

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

=Bildbeschreibung=

und in diesem finden sich dann die entsprechenden Dateien:

=Bildbeschreibung=

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):

=Bildbeschreibung=

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’

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ß

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:

=Bildbeschreibung=

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:

=Bildbeschreibung=

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:

=Bildbeschreibung=

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

=Bildbeschreibung=

Nach Start des Programms erscheint zunächst die Update-Meldung für die Datenbank für die Programm-Einstellungen:

=Bildbeschreibung=

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:

=Bildbeschreibung=

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 …

2150 Worte - Lesezeit: 11 Minute(n)

 

Zu diesem Artikel

 

weitere Artikel

Bild zum 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 ...

Bild zum Artikel

darktable 4.0: 3763 Tage später ...

02.07.2022 darktable 4.0 ist veröffentlicht. Es gab wieder einige Änderungen und neuer Features - und hier wie immer ein anschaulicher Artikel, der die etwas spröden Release-Notes ergänzt

Bild zum Artikel

Bilder importieren: Kamera, Karte, Computer - darktable Kurztipp

03.03.2022 darktable bietet verschiedene Möglichkeiten, Bilder zu importieren. Das ist nützlich, verursacht aber gelegentlich wohl auch Verwirrung bei dem einen oder anderen Anwender. Hier ein kleiner Abriß: was, wofür, wie?

Bild zum Artikel

darktable 3.8.0: Winterausgabe 2021

24.12.2021 darktable 3.8.0 ist veröffentlicht. Es gab wieder einige Änderungen und neuer Features - und hier wie immer ein anschaulicher Artikel, der die etwas spröden Release-Notes ergänzt