apt, snap, flatpak или AppImage
Четыре способа установить программу в Linux: чем отличаются apt, snap, flatpak и AppImage, что выбрать под конкретную задачу и что делать, когда apt ругается на блокировку. Конструктор команд для установки, удаления, обновления и очистки.
Одна и та же программа в Linux ставится четырьмя разными способами, и в инструкциях из интернета каждый раз попадается новый. Разберём, чем они отличаются на практике, что выбирать по умолчанию и почему иногда приходится ставить не из репозитория. Команды под свою задачу соберите в конструкторе — он же чинит самую частую поломку, когда apt отказывается работать.
Конструктор команд: установка и удаление программ
Выберите задачу и способ установки — получите точные команды. Подставьте название пакета, если знаете его.
Коротко: что выбрать
| Способ | Откуда берётся | Плюсы | Минусы |
|---|---|---|---|
| apt | репозиторий дистрибутива | легче всего по месту и памяти, проверено сопровождающими, обновляется вместе с системой | версии консервативные, свежее релиза обычно не будет |
| snap | магазин Canonical | одна сборка на все дистрибутивы, обновляется сама, есть в Ubuntu из коробки | запускается медленнее, занимает больше места, магазин один и закрытый |
| flatpak | Flathub | свежие версии, изоляция программ, каталог независимый | первый пакет тянет за собой общие библиотеки на пару гигабайт |
| AppImage | сайт разработчика | ничего не устанавливается, работает где угодно, легко удалить | сам не обновляется, не попадает в меню, иногда требует библиотеку FUSE |
Правило по умолчанию: сначала пробуйте apt. Если версия в репозитории устарела и это мешает — берите flatpak или snap. AppImage оставьте для редких программ, которые нужны раз в месяц.
Почему в репозитории старые версии
Это самое частое недоумение новичка: программа вышла в новой версии полгода назад, а apt ставит прошлогоднюю.
Так сделано намеренно. В LTS-выпуске Ubuntu пакеты замораживаются на момент релиза, и дальше в них приезжают только исправления безопасности. Пять лет подряд одна и та же версия ведёт себя предсказуемо: ничего не ломается после обновления, а дыры при этом закрываются. Для сервера это ровно то, что нужно.
Для программ, где важны новые функции — редактор видео, браузер, графический редактор — разумно сделать исключение и взять flatpak или snap. Смешивать способы можно и нормально: система от этого не пострадает.
Чем snap отличается от flatpak
Оба решают одну задачу: доставить программу со всеми зависимостями, не завися от версий библиотек в системе. Разница в деталях.
Snap сделан Canonical и в Ubuntu встроен изначально. Магазин один, и он закрытый — альтернативный источник поднять нельзя. Программы запускаются заметно медленнее при первом старте и монтируются как отдельные разделы (поэтому df -h показывает длинный список /snap/...). Зато обновления полностью автоматические.
Flatpak — независимый проект, основной каталог Flathub принимает сборки и от разработчиков, и от сообщества. Изоляция гибче: правами программы можно управлять — например, запретить доступ к домашней папке. Первая установка скачивает общую платформу размером в пару гигабайт, дальше эти библиотеки переиспользуются всеми flatpak-программами.
Практический вывод: в Ubuntu snap уже есть и для отдельных программ удобен, но если вы ставите десяток современных приложений — flatpak обычно приятнее.
Чего делать не нужно
Ставить программы командой curl ... | sudo bash. Такие однострочники предлагают на многих сайтах. Вы запускаете от имени root скрипт, который не читали, с сервера, который вам не подконтролен. Если другого способа нет — хотя бы сначала скачайте скрипт и просмотрите его: curl -fsSL адрес -o setup.sh && less setup.sh.
Подключать все PPA подряд. PPA — репозиторий постороннего человека, получающего право ставить пакеты в вашу систему. Держите только те, что ведут сами разработчики программы, и отключайте ненужные: они чаще всего ломают обновление дистрибутива на следующую версию.
Собирать из исходников, когда есть пакет. Способ рабочий, но собранная программа не попадает под управление пакетного менеджера: её не обновит система и не удалит одной командой. Для домашнего компьютера это почти всегда лишняя головная боль.
Пользоваться dpkg -i для .deb-файлов. Команда не подтягивает зависимости и оставляет систему в подвешенном состоянии. Правильнее sudo apt install ./файл.deb — apt сам доставит недостающее.
Когда apt отказывается работать
Три ошибки, с которыми сталкиваются все, и что они означают:
«Не удалось получить блокировку /var/lib/dpkg/lock» — прямо сейчас установкой занят кто-то ещё: автоматические обновления, открытый Центр приложений или ваша же команда в соседнем окне терминала. Обычно достаточно подождать минуту. Сносить файл блокировки, пока процесс жив, нельзя — можно испортить базу пакетов.
«Неудовлетворённые зависимости» — чаще всего последствие установки пакета не из репозитория. Лечится командой sudo apt --fix-broken install.
«Не удалось загрузить … 404 Not Found» — список пакетов устарел или подключён репозиторий, которого больше нет. Помогает sudo apt update, а если нет — стоит посмотреть, что лежит в /etc/apt/sources.list.d/, и убрать оттуда мёртвые источники.
Все команды с пояснениями собраны в разделе «Починить установку» конструктора выше.
Что читать дальше
- Чем заменить программы Windows в Linux — подборщик аналогов с готовыми командами установки.
- Установка Ubuntu Server 26.04 — первая настройка системы, включая автообновления.
- Root и sudo в Ubuntu — почему установка требует пароля и как устроены права.
Частые вопросы
Чем apt отличается от apt-get?
Это две команды к одному и тому же менеджеру пакетов. apt появился позже, он рассчитан на человека: показывает прогресс, подсвечивает вывод и объединяет самые нужные действия. apt-get оставлен для скриптов, где важно, чтобы формат вывода не менялся между версиями. В обычной работе используйте apt.
Что лучше — snap или flatpak?
Для единичной программы разницы почти нет. Flatpak обычно предпочтительнее, если вы ставите много современных приложений: гибче управление правами и независимый каталог. Snap удобен тем, что в Ubuntu он уже настроен и ничего подключать не нужно.
Почему программа из snap долго запускается?
Snap-пакет монтируется как отдельная сжатая файловая система, и при первом запуске после перезагрузки система распаковывает нужные части. Дальше программа стартует быстрее за счёт кэша. На SSD задержка заметна слабо, на жёстком диске — ощутимо.
Можно ли удалить snap из Ubuntu полностью?
Технически да, но часть системных компонентов в Ubuntu поставляется именно в этом виде, и после удаления придётся искать им замену. Если snap мешает конкретной программой — проще поставить её другим способом, чем выпиливать механизм целиком.
Куда устанавливаются программы в Linux?
Исполняемые файлы — в /usr/bin, общие данные — в /usr/share, настройки системы — в /etc, ваши личные настройки — в ~/.config. Snap хранит пакеты в /snap, flatpak — в /var/lib/flatpak. Искать программу вручную обычно не требуется: which имя_команды покажет путь.
Как обновить одну программу, не трогая систему?
Для apt: sudo apt install --only-upgrade имя_пакета. Для snap: sudo snap refresh имя_пакета. Для flatpak: flatpak update имя_пакета. Правда, версия всё равно ограничена тем, что есть в репозитории — новее там не появится.
Что делать, если AppImage не запускается?
Проверьте два момента. Первый — файл должен быть исполняемым: chmod +x файл.AppImage. Второй — ошибка про libfuse.so.2 означает отсутствие библиотеки FUSE, она ставится командой sudo apt install libfuse2t64.
Безопасно ли ставить программы из Flathub?
Пакеты от самих разработчиков помечены в каталоге как проверенные — им можно доверять примерно как официальному сайту программы. Сборки от сообщества тоже проходят базовую проверку, но ответственности за содержимое каталог не несёт. Плюс flatpak в том, что права программы можно ограничить, не давая ей доступ ко всем файлам.
Если статья пригодилась — отметьте, это помогает выбирать темы