Flatpak. Решение проблемы с долгим запуском приложений

Flatpak. Решение проблемы с долгим запуском приложений

Если вы читаете меня в Телеграм-канале (а если нет, то это повод начать), то уже читали пост о том, что после недавнего крупного обновления Manjaro Linux (на основе Arch Linux) у меня сломался OutWiker — возникли проблемы flatpak-пакетом, и даже из исходников его еле удалось запустить. Если еще не читали, то вот ссылки на начало и продолжение (в один пост не уместилось). Теперь я начинаю разгребать последствия.

После того самого обновления выявились две странности, которые казалось бы никак не связаны между собой. Во-первых, начались проблемы с работой OutWiker, который упакован в flatpak, а, во-вторых, некоторые приложения (например, Telegram) стали долго запускаться (после нажатия на иконку ничего не происходит секунд 10-20, а потом приложение запускается).

Проблема с OutWiker выглядела таким образом, что приложение запускалось без каких-либо ошибок и задержек, но вместо HTML-рендера WebKit в окне была пустая панель. Ничего подозрительного в логах не писалось. Также была другая проблема — OutWiker не открывал папку с плагинами, если выбрать пункт меню «Справка — Открыть папку с плагинами», но это такая мелочь, что я на нее сначала не обратил внимания.

Такое поведение OutWiker я раньше встречал после обновления ядра Linux, но оно чинилось выполнением команды flatpak update, в результате которой обновлялись flatpak-пакеты org.freedesktop.Platform.GL.nvidia-*, после чего OutWiker работал как надо. После последнего обновления команда flatpak update ничего не обновила, и проблема осталась. В том, что ничего не обновилось я начал винить тот факт (возможно, так оно и есть), что OutWiker при сборке flatpak использует старую версию org.gnome.Platform (объяснение, почему это так, достойно отдельного поста), и я сначала начал копать в сторону возможности обновления org.gnome.Platform.

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

Через некоторое время (прошло минут десять, не меньше) я вернулся к OutWiker-у и заметил, что он-таки создал HTML-рендер, а в логах появилась малозаметная строчка «Failed to call portal: Timeout was reached». Гугление этой фразы вывело меня через несколько ссылок на разные сообщения в багтрекере программы xdg-desktop-portal на github. Эта программа каким-то образом связана с flatpak. В сообщениях где-то сослались на комментарий, который помог решить проблему.

Для этого нужно было проделать следующие магические действия:

  1. Установить dbus-broker
  2. sudo systemctl enable --global dbus-broker.service
  3. sudo systemctl enable dbus-broker.service
  4. Перезагрузиться

После этого OutWiker заработал, как и раньше, в том числе начал открывать папку с плагинами, и Telegram стал запускаться сразу. Я пока не разбирался, как связаны между собой xdg-desktop-portal и сервис dbus-broker, а также, как их использует flatpak.

Чуть позже еще заметил другое решение проблемы на reddit, но сам я его уже не пробовал:

dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY

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

PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 1, средняя оценка: 5,00)
Загрузка...

Leave a comment

Subscribe without commenting