LinuxRuLinux без лишней теории
Форматы приложений

AppImage в Linux: как установить, обновлять и проверять на безопасность

Редакция LinuxRu6 мин чтенияСоветы

AppImage в Linux не устанавливается в привычном смысле: достаточно выдать файлу право на запуск и, если нужно, поставить libfuse2. Сложнее с обновлениями и доверием, ведь песочницы у формата нет. Ниже разбираем запуск в Ubuntu, Fedora и Arch, ярлыки, обновления и проверку файла перед первым запуском.

AppImage в Linux: как установить, обновлять и проверять на безопасность
Фото: Editor-1 (Farhad Mohammadi Majd), CC BY-SA 4.0, Wikimedia Commons
Содержание
  1. Как устроен
  2. Первый запуск
  3. Ошибка песочницы
  4. Ярлык в меню
  5. Обновление
  6. Проверка безопасности
  7. Изоляция
  8. Частые вопросы

Как устроен AppImage и чем он отличается от пакетов

AppImage - один исполняемый файл, внутри которого лежит программа со всеми библиотеками в сжатом образе SquashFS и маленькая программа-загрузчик (runtime). При запуске runtime монтирует образ через FUSE во временный каталог и запускает приложение оттуда. В систему ничего не копируется, root не нужен, удаление - это удаление файла.

Обратная сторона: нет песочницы, нет общего центра обновлений, нет проверки репозиторием. AppImage работает с теми же правами, что и вы, и видит весь домашний каталог. Поэтому вопрос безопасности здесь острее, чем у пакетов из репозитория или Flatpak.

ПризнакAppImageFlatpakSnapРепозиторий
Нужны права rootнетдля системной установкидада
Песочницанетда, настраиваемаяданет
Обновлениявручную или утилитойflatpak updateавтоматическивместе с системой
Кто проверяеттолько авторFlathub, частичноSnap Store, частичносопровождающие дистрибутива
Ярлык в менювручную или менеджеромсамсамсам

Если программа есть в репозитории или на Flathub, обычно разумнее взять её оттуда. Сравнение форматов подробно разобрано в статье Snap или Flatpak, а общая картина способов установки - в инструкции как установить программу в Linux. AppImage остаётся хорошим выбором для свежих версий, программ, которых нет в репозиториях, и для запуска с флешки.

Первый запуск: права и FUSE

Скачанный файл не имеет права на исполнение. Его нужно выдать, после чего файл запускается как обычная программа:

mkdir -p ~/Applications
mv ~/Загрузки/App-x86_64.AppImage ~/Applications/
chmod u+x ~/Applications/App-x86_64.AppImage
~/Applications/App-x86_64.AppImage

В файловом менеджере то же делается через Свойства - Права - Разрешить выполнение. Что означают биты прав, рассказано в статье про chmod и chown.

Самая частая ошибка при запуске - сообщение про отсутствующий libfuse.so.2. Старый runtime, которым собрано большинство AppImage, требует FUSE 2, а современные дистрибутивы по умолчанию ставят только FUSE 3. Доустановите библиотеку:

# Ubuntu 24.04 и 26.04, Debian 13, Linux Mint 22
sudo apt install libfuse2t64
# Ubuntu 22.04, Debian 12
sudo apt install libfuse2
# Fedora 44
sudo dnf install fuse-libs
# Arch Linux
sudo pacman -S fuse2

Не ставьте в Ubuntu пакет fuse вместо библиотеки: он может потянуть замену fuse3 и сломать другие программы. Нужна именно библиотека.

Новый статический runtime проекта AppImage включает FUSE 3 внутри и не требует libfuse2. Чем больше авторов на него переходит, тем реже встречается эта ошибка. Если библиотеку поставить нельзя, остаётся запуск без монтирования, с распаковкой во временный каталог:

./App-x86_64.AppImage --appimage-extract-and-run

Ошибка песочницы Chromium и Electron в Ubuntu

В Ubuntu начиная с 24.04 AppArmor ограничивает непривилегированные пространства имён пользователей. Программы на Electron и Chromium (редакторы, мессенджеры, клиенты заметок) в виде AppImage из-за этого падают с ошибкой про SUID sandbox helper или namespace.

Часто советуют запускать с --no-sandbox. Это работает, но отключает песочницу самого браузерного движка, и вредоносная страница или документ получат больше возможностей. Правильнее разрешить пространства имён конкретному файлу через профиль AppArmor. Создайте файл /etc/apparmor.d/myapp, указав полный путь к своему AppImage:

abi <abi/4.0>,
include <tunables/global>

profile myapp /home/user/Applications/App-x86_64.AppImage flags=(unconfined) {
  userns,
  include if exists <local/myapp>
}
sudo apparmor_parser -r /etc/apparmor.d/myapp

Профиль привязан к пути, поэтому после обновления, если имя файла с версией изменилось, путь нужно поправить. Удобно хранить программу под постоянным именем вроде ~/Applications/obsidian.AppImage. Откат - удалить файл профиля и выполнить sudo systemctl reload apparmor.

Ярлык в меню: Gear Lever, AppImageLauncher или вручную

Gear Lever

Самый удобный вариант в 2026 году - Gear Lever с Flathub. Перетаскиваете AppImage в окно, программа переносит файл в свой каталог, создаёт ярлык с иконкой, умеет проверять обновления и хранить предыдущую версию. С версии 3.0 у неё есть и команды для терминала.

flatpak install flathub it.mijorus.gearlever

AppImageLauncher, который советовали раньше, давно не получал крупных обновлений. Он ещё работает, но для новой системы удобнее Gear Lever: он живёт во Flatpak и не встраивается в механизм запуска всех AppImage.

Вручную

Ярлык - это текстовый файл в ~/.local/share/applications/. Иконку можно взять из самого образа: распакуйте его и найдите файл .DirIcon или png в корне squashfs-root.

[Desktop Entry]
Type=Application
Name=MyApp
Exec=/home/user/Applications/myapp.AppImage %U
Icon=/home/user/Applications/myapp.png
Categories=Utility;
Terminal=false
update-desktop-database ~/.local/share/applications

Сохраните его как myapp.desktop. В KDE и GNOME пункт появится в меню сразу или после повторного входа.

Как обновлять AppImage

Централизованного обновления нет, но многие авторы встраивают в файл информацию об обновлении. Проверить её можно так:

./myapp.AppImage --appimage-updateinformation

Если вывод не пустой (например, строка с gh-releases-zsync или адресом zsync-файла), подойдут Gear Lever или утилита appimageupdatetool проекта AppImageUpdate. Она скачивает только изменившиеся блоки и сохраняет рядом новую версию, а старую можно оставить для отката.

appimageupdatetool ~/Applications/myapp.AppImage

Если информации об обновлении нет, остаётся встроенная проверка в самой программе или ручное скачивание с официальной страницы. Подпишитесь на релизы проекта на GitHub: так вы узнаете об исправлениях уязвимостей, которые иначе пройдут мимо.

Перед обновлением важной программы не удаляйте старый файл, а переименуйте: mv app.AppImage app-old.AppImage. Если новая версия не запустится или испортит настройки, откат займёт секунду. Настройки при этом лежат отдельно, обычно в ~/.config, поэтому сделайте и их копию.

Проверка безопасности перед запуском

AppImage запускает код с вашими правами, поэтому проверка сводится к трём вопросам: откуда файл, не подменён ли он и что у него внутри.

  1. Источник. Качайте только с официального сайта программы или со страницы релизов её репозитория. Сборники AppImage, зеркала и ссылки из комментариев не годятся.
  2. Контрольная сумма. Если автор публикует SHA256, сверьте:
    sha256sum myapp.AppImage
    Строка должна совпасть с опубликованной полностью.
  3. Подпись. Встроенную подпись GPG показывает ./myapp.AppImage --appimage-signature. Ключ этой командой не проверяется, для проверки нужна утилита validate из инструментов AppImage. Подписывают файлы не все авторы, отсутствие подписи само по себе не приговор.
  4. Содержимое. Распакуйте образ без запуска и посмотрите, что в нём:
    ./myapp.AppImage --appimage-extract
    ls squashfs-root
    cat squashfs-root/AppRun | head -n 40
    Скрипт AppRun, который скачивает что-то из интернета или лезет в ~/.bashrc, повод остановиться.

Обратите внимание: --appimage-extract выполняет runtime самого файла. Для совсем подозрительного файла безопаснее распаковать образ без его запуска, например в виртуальной машине. Нужен ли в Linux антивирус для таких случаев, разобрано в статье про антивирус в Linux.

Как ограничить AppImage, если доверия мало

Песочницы у формата нет, но её можно добавить снаружи. Firejail умеет запускать AppImage напрямую и закрывать доступ к домашнему каталогу:

# Debian, Ubuntu
sudo apt install firejail
# Fedora 44
sudo dnf install firejail
# Arch Linux
sudo pacman -S firejail

firejail --appimage --private=$HOME/sandbox-myapp ~/Applications/myapp.AppImage

Параметр --private подменяет домашний каталог отдельной папкой, так что программа не увидит ваши документы, ключи SSH и профиль браузера. Для постоянного использования лучше найти ту же программу на Flathub и настроить её разрешения, как описано в статье про разрешения Flatpak.

Удаление AppImage: удалите сам файл, ярлык из ~/.local/share/applications/ и, если не нужны настройки, каталог программы в ~/.config и ~/.local/share. Подробности про формат и упаковку есть в официальной документации AppImage.

Частые вопросы

Почему AppImage не запускается в Ubuntu?

Чаще всего не хватает libfuse2. В Ubuntu 24.04 и новее установите libfuse2t64. У Electron-программ причиной бывает ограничение пространств имён AppArmor.

Куда класть AppImage-файлы?

Удобно в ~/Applications или в каталог, который использует Gear Lever. Главное, чтобы путь не менялся: на него ссылаются ярлык и профиль AppArmor.

Безопасен ли AppImage?

Настолько, насколько надёжен источник. Песочницы нет, файл работает с правами пользователя. Скачивайте с официальных страниц, сверяйте SHA256, при сомнениях запускайте через Firejail.

Как обновить AppImage?

Если в файле есть данные об обновлении, используйте Gear Lever или appimageupdatetool. Иначе скачайте новую версию с официального сайта.

Как удалить AppImage?

Удалите файл, его ярлык в ~/.local/share/applications и при необходимости настройки в ~/.config.

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.