Установка софта на Ubuntu: apt, snap, flatpak
Этот раздел собирает три способа ставить программы на Ubuntu — классический apt из репозиториев, snap для свежих версий и flatpak для desktop-приложений с песочницей. И отдельно — автообновления безопасности через unattended-upgrades.
Три способа поставить пакет на Ubuntu
Ubuntu даёт сразу три менеджера пакетов, у каждого своя ниша:
- apt — классический, ставит пакеты из репозиториев Ubuntu и PPA. Базовый инструмент сервера.
- snap — пакеты с включёнными зависимостями, обновляются автоматически. Подходит для свежих версий софта.
- flatpak — фокус на desktop-приложения с изоляцией. На сервере не нужен.
Поверх всего лежит механизм безопасности — unattended-upgrades, который автоматически ставит security-патчи без участия администратора.
apt: основной менеджер
sudo apt update обновляет список пакетов, sudo apt upgrade ставит обновления. Это две команды, которые админ Ubuntu выполняет регулярно. Когда upgrade достаточно, когда нужен dist-upgrade, как избежать сюрпризов на проде — в apt update и apt upgrade без сюрпризов.
Базовые операции:
sudo apt update # обновить индекс
sudo apt install nginx # поставить пакет
sudo apt remove nginx # удалить
sudo apt purge nginx # удалить с конфигами
sudo apt autoremove # снести осиротевшие зависимости
snap: версии свежее, чем в apt
snap включает в пакет все зависимости и работает в собственной песочнице. Обновления приходят автоматически с серверов Canonical, без участия apt. Полезно для софта, который в репозиториях устарел (например, certbot, lxd, nextcloud). Минус — медленнее запускается и занимает больше места на диске.
Базовый термин — в глоссарии: что такое snap.
flatpak: desktop-приложения
flatpak — конкурент snap, ориентированный на desktop. На Ubuntu Server смысла нет, на Ubuntu Desktop ставится через sudo apt install flatpak, дальше пакеты приходят с Flathub. Изоляция строже, чем у snap, но интеграция с GNOME требует ручной настройки тем.
PPA: репозитории сообщества
PPA (Personal Package Archive) — это сторонний репозиторий, который добавляется в /etc/apt/sources.list.d/. Полезен, когда нужна свежая версия, которой нет в основных репозиториях, или специализированный пакет. Минус — PPA доверяете лично мейнтейнеру, контроля Canonical там нет.
sudo add-apt-repository ppa:user/repo
sudo apt update
sudo apt install <пакет>
unattended-upgrades: автообновления безопасности
unattended-upgrades — служба, которая раз в сутки ставит security-патчи без вмешательства. Конфигурируется в /etc/apt/apt.conf.d/50unattended-upgrades. Включена по умолчанию на свежей Ubuntu Server 24.04, но ставит только security-апдейты — обычные upgrade нужно делать вручную.
Связь с другими разделами
- Регулярный
apt updateвходит в план базовой закалки сервера. - Бэкап перед массовым
dist-upgrade— через rsync. - Базовый термин — что такое apt.
Частые вопросы
apt или snap для одного и того же пакета?
Если пакет есть в обоих — берите apt: он быстрее, легче, интегрирован с systemd. snap — когда нужна именно свежая версия, например свежий certbot или новый Docker.
Можно ли отключить snap полностью?
На Ubuntu Server snapd по умолчанию не нужен. Можно его убрать: sudo apt purge snapd. На Desktop отключение приведёт к проблемам с интегрированным софтом (Firefox в новых Ubuntu — snap).
Что делать, если apt-источник упал?
sudo apt update покажет ошибку с URL. Проверьте /etc/apt/sources.list и /etc/apt/sources.list.d/. Битый PPA — удалите файл из sources.list.d/, заново apt update.
Безопасно ли запускать sudo apt upgrade в проде?
Если читали apt list --upgradable и понимаете список — безопасно. Если есть критичный сервис — сначала бэкап через rsync, потом upgrade в техокно.
Что запомнить
- apt — для всего серверного быта; snap — когда нужна свежая версия; flatpak — только desktop.
- Регулярный
sudo apt update && sudo apt upgrade— гигиена сервера. - PPA доверяете мейнтейнеру лично, не Canonical — добавляйте осознанно.
- unattended-upgrades включён по умолчанию и ставит только security.
- Перед
dist-upgradeили массовымupgradeна проде — бэкап. - Snap можно убрать с Server, на Desktop оставьте.