Секреты и хитрости🔗
Эта страница объясняет несколько полезных функций Flatpak CLI.
Тестирование приложения с другой средой выполнения🔗
Вы можете (для тестирования) запустить приложение с другой средой выполнения, чем обычно. Например, чтобы запустить стабильный gedit с последней нестабильной средой выполнения gnome, вы можете сделать:
$ flatpak run --runtime-version=master org.gnome.gedit
Вы также можете использовать совершенно другую среду выполнения (но с тем же номером версии):
$ flatpak run --runtime=org.gnome.Sdk org.gnome.gedit
Если вы просто хотите использовать SDK вместо платформы, подобной указанной выше, лучше использовать -d
.
Предупреждение
Работа со средой выполнения с совершенно другим ABI является неопределенным и неподдерживаемым поведением.
Откат🔗
Можно понизить версию установленного приложения (или среды выполнения) до более старой сборки.
Сначала вы ищите интересующий вас коммит:
$ flatpak remote-info --log flathub org.gnome.Recipes
Затем вы развертываете коммит:
$ sudo flatpak update \
--commit=ec07ad6c54e803d1428e5580426a41315e50a14376af033458e7a65bfb2b64f0 \
org.gnome.Recipes
Примечание
В этом примере для установки системы используется sudo
, потому что, в отличие от обычных обновлений, переход на более раннюю версию считается привилегированным действием. Если приложение установлено для каждого пользователя, вы должны запустить его от имени этого пользователя.
Если у вас Flatpak 1.5.0 или новее, вы также можете запретить включение приложения в обновления (вручную или автоматически):
$ flatpak mask org.gnome.Recipes
Поперечная регрессия в сборках приложений🔗
В случае, если новейшие сборки приложения вызывают регрессию, вы можете использовать команду flatpak-bisect, чтобы узнать, какая фиксация привела к регрессии. Он работает так же, как git bisect
.
Если ваш дистрибутив не устанавливает утилиту flatpak-bisect
, вы можете найти ее вместе с исходным кодом Flatpak по адресу: https://github.com/flatpak/flatpak/blob/main/scripts/flatpak-bisect
Сначала вы обновляете приложение и получаете его историю:
$ flatpak-bisect org.gnome.gedit start
Затем вы должны установить текущий коммит как первый ошибочный коммит:
$ flatpak-bisect org.gnome.gedit bad
Теперь вам нужно найти хеш первого удачного коммита. Для этого вы можете просмотреть историю сборки, запустив:
$ flatpak-bisect org.gnome.gedit log
Чтобы начать деление пополам, проверьте первый известный удачный коммит, который вы найдете:
$ flatpak-bisect org.gnome.gedit checkout 5cd2b0648618c9038fbc6830733817309ade29541cdd8383830bbb76f6accf0d
После установки плохой фиксации и первой известной хорошей фиксации вы можете запустить приложение, чтобы проверить, является ли текущая фиксация в сеансе разделения на две части: хорошей или плохой.
Чтобы пометить фиксацию как хорошую или плохую, запустите:
$ flatpak-bisect org.gnome.gedit good
Или:
$ flatpak-bisect org.gnome.gedit bad
flatpak-bisect
сообщит вам, когда будет обнаружена первая плохая фиксация.
Добавление выборочной установки🔗
По умолчанию Flatpak устанавливает приложения в масштабе всей системы, а также может быть настроен для установки для каждого пользователя с параметром –user, принятым большинством команд. Третий вариант - настроить выборочную установку, которая может храниться на внешнем жестком диске.
Сначала убедитесь, что каталог конфигурации существует:
$ sudo mkdir -p /etc/flatpak/installations.d
Затем откройте файл в этом каталоге как root:
$ sudoedit /etc/flatpak/installations.d/extra.conf
И напишите что-нибудь вроде этого:
[Installation "extra"]
Path=/run/media/mwleeds/ext4_4tb/flatpak/
DisplayName=Extra Installation
StorageType=harddisk
Полную спецификацию формата см. в разделе flatpak-installation(5). Замените путь фактическим путем, который вы хотите использовать. Вы можете использовать df
для просмотра смонтированных файловых систем и mkdir
для создания каталога flatpak
, чтобы существовал путь, указанный в Path=
.
Затем вы можете добавить удалённый компьютер с помощью такой команды, как:
$ flatpak --installation=extra remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
И установите его с помощью:
$ flatpak --installation=extra install flathub org.inkscape.Inkscape
Примечание
Если ваша пользовательская установка является единственной с удаленным компьютером, с которого вы выполняете установку, параметр --installation
можно не указывать.
И запускать из него приложения с помощью:
$ flatpak --installation=extra run org.inkscape.Inkscape
Примечание
Если ваша пользовательская установка является единственной с приложением, которое вы используете, --installation
можно не указывать.
Настройка лимитов ресурсов для приложений🔗
Когда доступен systemd, Flatpak пытается поместить процессы приложения в область действия, такую как app-flatpak-com.brave.Browser-*.scope (в случае Brave), где *
заменяется произвольным суффиксом. Это означает, что вы можете создать файл вида ~/.config/systemd/user/app-flatpak-com.brave.Browser-.scope.d/memory.conf
с таким содержимым:
[Scope]
MemoryHigh=1G
Затем после systemctl --user daemon-reload
эти параметры systemd.resource-control(5)
будут применяться ко всем экземплярам этого приложения.