mimetype не идентифицирует файлы pdf: mime hell

mimetype не идентифицирует файлы pdf: mime hell

У меня никогда не было проблем с открытием файлов pdf до недавнего времени. Затем я захотел почитать о пакете xcolor для TeX и ввел следующую команду:

texdoc xcolor

Это всегда работало, документация открывалась в моем любимом просмотрщике PDF, qpdfview. Но теперь он пытается открыть ее с помощью qpdfview, но qpdfview выдает ошибку:

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

И на терминале я получаю следующее сообщение об ошибке:

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

Я использую оконный менеджер i3 в Ubuntu 21.04, а мои $XDG_CURRENT_DESKTOP и $DESKTOP_SESSION установлены на «i3».

Итак, в заведомо исправном PDF-файле я ввел:

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

Хотя,

$ file --mime-type
application/pdf

Правильный.

Итак, я попробовал

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

Хорошо, возможно, gio установлен неправильно:

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

Я попробовал установить обработчик с помощью

$ xdg-mime default qpdfview.desktop application/pdf

Но когда я задаю этот вопрос:

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

Это вариант, но я его не устанавливал. В любом случае, он не влияет на xdg-open:

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

Я не понимаю, что происходит, и не могу найти нигде четких указаний, по крайней мере, ни одного, которое бы работало.

Вся экосистема связывания типов файлов с обработчиками в Ubuntu озадачивает меня, поэтому я был бы признателен за хорошее обзорное руководство, которое объясняет взаимосвязи между:

mime-тип xdg-open gio

и все остальное, что может помочь мне исправить мою систему, отличную от Gnome и KDE.

Обновлять

По предложению @steeldriver я запустил:

$ 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

Я не вижу ничего интересного в ~/.local/share, но вижу это:

$ 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;

решение1

Я нашел проблему. Запуск mimetype --debug дал подсказку, но я ее не видел. (Спасибо @steeldriver) Я попробовал ту же команду как root на том же файле, и она дала правильный ответ.

Оказалось, что по какой-то причине в мой файл конфигурации оболочки попала настройка переменной окружения XDG_DATA_DIRS, и она исключила каталоги по умолчанию.

В соответствии сСпецификация XDG, по умолчанию установлено значение "/usr/local/share:/usr/share", а мои настройки переопределяли их, поэтому база данных MIME по умолчанию в /usr/share/mime/freedesktop.org.xml не считывалась системой обнаружения MIME.

Поскольку ошибочная настройка добавила несколько каталогов, связанных с flatpak, я, должно быть, добавил эту настройку в связи с тестированием flatpak, но я не помню, чтобы делал что-либо подобное, так что, возможно, эта настройка была добавлена ​​в мой файл config.fish без моей ведома.

В любом случае, я надеюсь, что это поможет кому-то в будущем.

Связанный контент