Медленный запуск системы из-за сервиса xdg-desktop-portal (xdg-document-portal), без FUSE 3.12, как исправить?

Вопрос или проблема

Каждая установка (snap) кажется, начинает медленно. При запуске с --trace-exec я вижу следующее сообщение в начале логов:

2024/01/05 18:13:22.350176 cmd_run.go:1055: ВНИМАНИЕ: не удалось запустить документальный портал: не удалось активировать службу 'org.freedesktop.portal.Documents': время ожидания истекло (service_start_timeout=120000ms)

Похоже, это связано с чем-то под названием xdg-desktop-portal. Некоторые люди исправили это, обнаружив проблему с правами на каталог, который находится в .local/share/flatpak. У меня такого каталога нет.

Дальнейшее исследование привело меня к службе xdg-document-portal. В моем случае она не может запуститься успешно:

$ systemctl --user status xdg-document-portal.service
× xdg-document-portal.service - служба документального портала flatpak
     Loaded: загружено (/usr/lib/systemd/user/xdg-document-portal.service; статическая)
     Active: неудача (Результат: код выхода) с пт 2024-01-05 18:19:54 GMT; 1с назад
    Process: 9581 ExecStart=/usr/libexec/xdg-document-portal (code=exited, status=1/FAILURE)
   Main PID: 9581 (code=exited, status=1/FAILURE)
        CPU: 2ms

Jan 05 18:19:54 CSLLAP- systemd[4067]: Запуск службы xdg-document-portal.service - служба документального портала flatpak...
Jan 05 18:19:54 CSLLAP- xdg-document-portal[9581]: /usr/libexec/xdg-document-portal: /usr/local/lib/x86_64-linux-gnu/libfuse3.so.3: версия `FUSE_3.12' не найдена (требуется для /usr/libexec/xdg-document-portal)
Jan 05 18:19:54 CSLLAP- systemd[4067]: xdg-document-portal.service: главный процесс завершился, код=выход, статус=1/НЕУДАЧА
Jan 05 18:19:54 CSLLAP- systemd[4067]: xdg-document-portal.service: завершено с результатом 'код выхода'.
Jan 05 18:19:54 CSLLAP- systemd[4067]: Не удалось запустить службу xdg-document-portal.service - служба документального портала flatpak.

С главной проблемой:

Jan 05 18:19:54 CSLLAP- xdg-document-portal[9581]: /usr/libexec/xdg-document-portal: /usr/local/lib/x86_64-linux-gnu/libfuse3.so.3: версия `FUSE_3.12' не найдена (требуется для /usr/libexec/xdg-document-portal)

Я не знаю, что такое fuse, но, похоже, у меня более новая версия:

$ sudo apt install libfuse3-dev
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение состояния информации... Готово
libfuse3-dev уже самой новой версии (3.14.0-4).
0 для обновления, 0 для новой установки, 0 для удаления и 0 не для обновления.

Зависит ли xdg-document-portal абсолютно от fuse 3.12? Что я могу сделать, чтобы это исправить? Могу ли я остановить выполнение snap-программ, которые зависят от этой службы?

Детали ОС:

[~]$ lsb_release -a
Нет доступных модулей LSB.
Идентификатор дистрибьютора: Ubuntu
Описание:    Ubuntu 23.10
Версия:    23.10
Кодовое имя:   mantic
[~]$ uname -a
Linux CSLLAP- 6.5.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Вт Ноя 14 14:59:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[~]$ 

Правка: обходное решение – просто установить fuse 3.12 с использованием инструкций по установке на странице репозитория. Но мне хотелось бы лучше понять, что происходит.

После перезагрузки Ubuntu 23.10 мне приходится ждать 2 минуты, после чего все работает нормально. Открытие терминала, nautilus и т. д. до этого времени происходит очень медленно.

Поиск в Интернете указывает на xdg-document-portal.service как на виновника. Есть решения, в которых он удаляется, но поскольку я не знаю, для чего он нужен, я не хотел следовать этим путем.

$ systemctl is-enabled --user xdg-desktop-portal
static

$ systemctl mask --user xdg-desktop-portal
Создан символическая ссылка /home/daniel/.config/systemd/user/xdg-desktop-portal.service → /dev/null.

$ systemctl is-enabled --user xdg-desktop-portal
masked

Заблокировав его (средняя команда выше, без sudo), юнит ссылается на /dev/null и не может быть активирован.

После перезагрузки задержка исчезла, и открытие терминала и т. д. происходит так же быстро, как ожидалось.


Примечание: Моя проблема, похоже, отличается от вашей, поскольку у меня нет проблем с FUSE. У меня не установлен libfuse3-dev. Я только что установил Mantic на прошлой неделе, так что, возможно, проблема, с которой вы столкнулись, была устранена в результате обновления системы, а моя проблема совершенно другая. Но я оставляю здесь информацию о том, что я сделал, на случай, если другие столкнутся с такими же трудностями.


Обновление: С заблокированным xdg-desktop-portal у меня нет проблем с медленной загрузкой, но это вызывает другие проблемы – по крайней мере, одна, о которой я знаю. В Firefox (snap), когда я пытаюсь вставить PDF в OneNote, это не работает. Местный выбор файла просто не появляется. Разблокировка xdg-desktop-portal и перезапуск службы снова делает выбор файла в FF работоспособным.

Ответ или решение

Ваш вопрос касается медленного запуска приложений с использованием snap, и вы обнаружили, что это связано с неудачным запуском службы xdg-desktop-portal. Давайте подробно рассмотрим проблему и возможные решения.

Проблема

Судя по вашим логам, проблема возникает из-за следующего сообщения:

/usr/libexec/xdg-document-portal: /usr/local/lib/x86_64-linux-gnu/libfuse3.so.3: version `FUSE_3.12' not found (required by /usr/libexec/xdg-document-portal)

Ваша система не может найти необходимую версию библиотеки FUSE, которая требуется для корректного запуска xdg-document-portal. В то время как на вашем компьютере установлена более новая версия FUSE (3.14.0), служба ожидает 3.12. Это часто происходит, если в системе установлено несколько версий одной библиотеки, или если настроены некорректные переменные окружения.

Возможные решения

  1. Установка необходимых библиотек (FUSE 3.12):

    Если вы хотите, чтобы xdg-document-portal работал корректно без проблем, вы можете установить требуемую версию FUSE. Вы можете загрузить её с официального репозитория FUSE и следовать инструкциям по установке. Имейте в виду, что это может привести к конфликтам с уже установленными версиями, поэтому стоит применять это решение с осторожностью.

  2. Поиск и устранение конфликта библиотек:

    Убедитесь, что ваша библиотека FUSE корректно установлена. Для этого выполните следующие команды:

    ldconfig -p | grep fuse

    Это покажет все установленные версии FUSE и их местоположение. Если там нет libfuse3.so.3, возможно, что-то пошло не так при установке библиотеки.

  3. Маскирование службы xdg-document-portal:

    Если вы не хотите устанавливать требуемую версию FUSE и готовы мириться с тем, что некоторые функции могут не работать, вы можете замаскировать эту службу, как вы уже пробовали:

    systemctl --user mask xdg-desktop-portal

    Эта команда предотвращает автоматический запуск службы, что может помочь ускорить процесс загрузки системы. Имейте в виду, что это приведет к проблемам с доступом к некоторым функциям, как, например, при использовании файлового менеджера или встроенных файловых диалогов приложений, использующих snap.

  4. Проверка других зависимостей и обновлений:

    Убедитесь, что ваша система и все пакеты обновлены. Вы можете выполнить следующие команды:

    sudo apt update && sudo apt upgrade

    Это может помочь устранить некоторые проблемы, если они связаны с устаревшими пакетами.

Заключение

Проблема, с которой вы столкнулись, связана с несовместимостью версий библиотек и требует от вас выбора учетом последствий. Вы можете либо установить необходимую версию FUSE, либо маскировать xdg-desktop-portal, что может вызвать другие ограничения в использовании приложений snap. Если вы не уверены в правильности своих действий или если вам нужна дальнейшая помощь, не стесняйтесь обращаться к сообществу или специализированным форумам.

Запомните, что стабильность системы важнее, чем временное избавление от проблем, поэтому всегда делайте резервные копии важной информации перед внесением значительных изменений в вашу ОС.

Оцените материал
Добавить комментарий

Капча загружается...