13.3Dateitypen (MIME)

Sie klicken in einem Webbrowser oder Dateimanager auf einen Link, der auf eine MP3-Datei verweist – und die MP3-Datei wird automatisch in einem Audio-Player abgespielt. Wenn das funktioniert, ist MIME korrekt konfiguriert.

MIME steht für Multipurpose Internet Mail Extensions. Ursprünglich bezog sich MIME auf E-Mail-Attachments. Wenn mit einer E-Mail beispielsweise eine PDF- oder JPEG-Datei mitgesandt wird, dann sollte der E-Mail-Client wissen, mit welchem Programm diese Datei betrachtet bzw. bearbeitet werden kann. Damit das funktioniert, ist die MIME-Konfiguration erforderlich.

Mittlerweile reicht die Anwendung von MIME aber viel weiter: Wenn Sie im Dateimanager oder Webbrowser einen Link auf eine Datendatei verfolgen, sollte auch dieses Programm wissen, wie es mit diesen Daten umgehen soll. Die Bedeutung einer korrekten MIME-Konfiguration erstreckt sich also auf alle Programme, die mit unterschiedlichen Datentypen zurechtkommen müssen.

Linux wäre nicht Linux (oder Unix), wenn es einen zentralen Ort für die MIME-Konfiguration gäbe. Stattdessen gibt es eine ganze Menge. Die MIME-Daten für KDE-Programme, Gnome-Programme, diverse Webbrowser, für das Drucksystem CUPS etc. werden jeweils separat verwaltet. Außerdem gibt es noch eine zentrale MIME-Konfiguration für alle Programme, die keine eigenen MIME-Konfigurationsdateien verwalten.

Die Aufteilung der MIME-Konfiguration auf mehrere Orte hat natürlich gute Gründe: Sowohl KDE als auch Gnome verwenden ein Konzept, das Komponenten zur Bearbeitung verschiedener Datentypen vorsieht. Wenn im KDE-Dateimanager eine PNG-Bilddatei angezeigt werden soll, wird einfach die entsprechende Komponente geladen und ausgeführt. Da die KDE- und Gnome-Bibliotheken in der Regel zueinander inkompatibel sind, wäre es fatal, wenn der KDE-Dateimanager versuchen würde, eine Gnome-Komponente auszuführen (oder umgekehrt). Um das zu vermeiden, verwenden KDE und Gnome jeweils ihre eigene MIME-Datenbank. Ähnlich ist die Argumentation auch bei allen anderen Programmen mit eigener MIME-Konfiguration.

Bei vielen MIME-Konfigurationsdateien muss darüber hinaus zwischen der globalen und der individuellen Konfiguration unterschieden werden, also zwischen der Grundeinstellung für alle Anwender und den benutzerspezifischen Einstellungen. Im Folgenden wird nur die MIME-Grundkonfiguration von Linux präsentiert.

Anwendungsspezifische MIME-Details sind in anderen Kapiteln beschrieben: die KDE-MIME-Konfiguration also im KDE-Kapitel etc.

Die allgemeinen MIME-Konfigurationsdateien werden nur von den Programmen berücksichtigt, die keine eigenen MIME-Dateien verwalten. Die Einstellungen sind auf zwei Dateien verteilt, von denen es jeweils eine globale und eine benutzerspezifische Version gibt (siehe Tabelle 13.5).

Datei

Bedeutung

/etc/mime.types

globale Konfiguration für Dateitypen

/etc/mailcap

globale Konfiguration für Programme

.mime.types

lokale Konfiguration für Dateitypen

.mailcap

lokale Konfiguration für Programme

Tabelle 13.5MIME-Konfigurationsdateien

mime.types enthält eine Liste, die die Zuordnung zwischen Dateitypen (erste Spalte) und Dateikennungen (alle weiteren Spalten) herstellt. Die erste Beispielzeile ordnet dem Typ application/pdf die Kennung *.pdf zu. In mime.types wird zum Teil zwischen Text- und X-Applikationen unterschieden, weswegen Sie Dateitypen wie application/x-name finden werden.

# in /etc/mime.types ... application/pdf pdf

mailcap gibt an, welches Programm zur Anzeige bzw. Bearbeitung eines bestimmten Dateityps verwendet werden soll. Die folgende Zeile besagt, dass zur Anzeige von PDF-Dateien das Programm evince verwendet werden soll. Im Gegensatz zu mime.types müssen die Spalten in mailcap durch Semikola getrennt werden. %s ist ein Platzhalter für den Dateinamen.

# in /etc/mailcap application/pdf; evince %s

MIME ist für die Zuordnung zwischen dem Dateityp und den dazu passenden Programmen zuständig. Aber wie wird der Dateityp überhaupt festgestellt? Der Normalfall besteht darin, dass die Dateikennung den Dateityp angibt. Die Dateikennung *.ps deutet beispielsweise auf eine PostScript-Datei hin.

Bei Dateien ohne Kennung versuchen das Programm file bzw. entsprechende KDE- oder Gnome-Äquivalente den Dateityp aus dem Inhalt der ersten Bytes bzw. anhand von charakteristischen Zeichenketten zu erkennen, die in der Datei enthalten sind. Das Erkennungsverfahren basiert auf in das Kommando file einkompilierten Informationen darüber, welche Byte- und Zeichenmuster eine Datei enthalten kann. Bei einigen Distributionen kann die Standardkonfiguration durch die Dateien /etc/magic bzw. in .magic verändert werden.