MIME-Typ identifiziert keine PDF-Dateien: MIME-Hölle

MIME-Typ identifiziert keine PDF-Dateien: MIME-Hölle

Ich hatte bis vor kurzem nie Probleme mit dem Öffnen von PDF-Dateien. Dann wollte ich mich über das xcolor-Paket für TeX informieren und gab den folgenden Befehl ein:

texdoc xcolor

Das hat immer funktioniert und die Dokumentation in meinem bevorzugten PDF-Viewer, qpdfview, geöffnet. Aber jetzt versucht es, sie mit qpdfview zu öffnen, aber qpdfview zeigt einen Fehler an:

Could not open '/usr/share/texlive/texmf-dist/doc/latex/xcolor/xcolor.pdf'.

Und am Terminal erhalte ich folgende Fehlermeldung:

Unknown MIME type: ""
"Could not match file type of '/usr/share/texlive/texmf-dist/doc/latex/xcolor/xcolor.pdf'!"

Ich verwende den i3-Kachelfenstermanager unter Ubuntu 21.04 und mein $XDG_CURRENT_DESKTOP und $DESKTOP_SESSION sind auf „i3“ eingestellt.

Also habe ich in eine bekanntermaßen gute PDF-Datei Folgendes eingegeben:

$ mimetype TrigLocal.pdf
TrigLocal.pdf: text/plain

Obwohl,

$ file --mime-type
application/pdf

Richtig.

Also versuchte ich

$ xdg-open TrigLocal.pdf
gio: file:///home/ded/TeXexamples/TrigLocal.pdf: No application is registered as handling this file

OK, also ist gio vielleicht nicht richtig eingestellt:

$ gio mime TrigLocal.pdf
No default applications for “TrigLocal.pdf”

Ich habe versucht, den Handler mit

$ xdg-mime default qpdfview.desktop application/pdf

Aber wenn ich es abfrage:

$ xdg-mime query default application/pdf
qpdfview-chromium.desktop

Das ist eine Variante, die ich aber nicht gesetzt habe. Auf jeden Fall hat sie keine Auswirkung auf xdg-open:

$ xdg-open TrigLocal.pdf
gio: file:///home/ded/TeXexamples/TrigLocal.pdf: No application is registered as handling this file

Ich weiß nicht, was falsch läuft, und ich kann nirgends eine klare Anleitung finden, zumindest keine, die funktioniert.

Das gesamte Ökosystem der Verknüpfung von Dateitypen mit Handlern unter Ubuntu ist mir ein Rätsel, daher würde ich mich über ein gutes Übersichtstutorial freuen, das die Zusammenhänge zwischen den folgenden Elementen erklärt:

MIME-Typ xdg-open gio

und alles andere, was mir dabei hilft, mein System, das nicht auf Gnome und KDE basiert, zu reparieren.

Aktualisieren

Auf Vorschlag von @steeldriver habe ich Folgendes ausgeführt:

$ mimetype --debug TrigLocal.pdf
> Data dirs are: /home/ded/.local/share, /var/lib/flatpak/exports/share /home/ded/.local/share /flatpak/exports/share
> Checking inode type
> Checking globs for basename 'TrigLocal.pdf'
> Checking for extension '.pdf'
> Checking globs for basename 'triglocal.pdf'
> Checking for extension '.pdf'
> File exists, trying default method
TrigLocal.pdf: text/plain

Ich sehe nichts Interessantes in ~/.local/share, aber ich sehe Folgendes:

$ cat ~/.local/share/applications/mimeapps.list 
[Default Applications]
application/pdf=qpdfview.desktop
application/html=google-chrome.desktop
text/html=google-chrome.desktop
x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop
x-scheme-handler/about=google-chrome.desktop
x-scheme-handler/unknown=google-chrome.desktop

[Added Associations]
application/pdf=evince.desktop;zathura-pdf-poppler.desktop;

Antwort1

Ich habe das Problem gefunden. Das Ausführen von mimetype --debug hat einen Hinweis geliefert, aber ich habe ihn nicht gesehen. (Danke @steeldriver) Ich habe als Root denselben Befehl für dieselbe Datei ausprobiert und er hat die richtige Antwort geliefert.

Es stellte sich heraus, dass aus irgendeinem Grund eine Einstellung für die Umgebungsvariable XDG_DATA_DIRS in meine Shell-Konfigurationsdatei gelangt war und die Standardverzeichnisse ausschloss.

Entsprechenddie XDG-Spezifikation, es ist standardmäßig auf „/usr/local/share:/usr/share“ eingestellt und meine Einstellung hat diese überschrieben, sodass die Standard-MIME-Datenbank unter /usr/share/mime/freedesktop.org.xml nicht in das MIME-Erkennungssystem eingelesen wurde.

Da die fehlerhafte Einstellung einige Flatpak-bezogene Verzeichnisse hinzugefügt hat, muss ich die Einstellung im Zusammenhang mit dem Ausprobieren von Flatpaks hinzugefügt haben, aber ich kann mich nicht daran erinnern, so etwas getan zu haben. Daher wurde die Einstellung möglicherweise hinter meinem Rücken zu meiner Datei config.fish hinzugefügt.

Wie dem auch sei, ich hoffe, dass dies in Zukunft jemandem hilft.

verwandte Informationen