Гид по технологиям

Как очистить Snap‑пакеты на Linux и освободить место

5 min read Linux Обновлено 26 Dec 2025
Очистка Snap‑пакетов и освобождение места на Linux
Очистка Snap‑пакетов и освобождение места на Linux

Что такое Snap — понятное определение

Snap — это формат пакетирования приложений, в котором сама программа и все её зависимости упакованы в один файл. Это упрощает совместимость между дистрибутивами, но увеличивает размер пакета.

Почему Snap‑пакеты громоздкие

Snap‑пакеты на Linux‑ПК

Snap стремится к автономности: каждая сборка включает библиотеки и зависимости. Это решает проблему несовместимых версий, но приводит к большим объёмам на диске. Ещё одна причина — механизм отката: после обновления предыдущая версия сохраняется, чтобы при необходимости можно было быстро вернуться назад. В результате текущая и предыдущая версии сосуществуют и занимают место.

Важно: Snap хранит данные и некоторые файлы в каталоге пользователя ~/snap, а сами пакеты — в системных каталогах, зависящих от дистрибутива.

1. Удаление пакетов‑откатов (rollback)

Snap хранит старые ревизии пакетов. Они отмечены как disabled в выводе команды. Чтобы увидеть все установленные снапы и их ревизии, выполните:

snap list --all

Список всех Snap‑пакетов с ревизиями

В выводе вы увидите активные и отключённые (disabled) ревизии. Отключённые ревизии — это те самые старые версии, которые можно удалить без потери текущей функциональности. Пример удаления конкретной ревизии:

sudo snap remove canonical-livepatch --revision=229

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

Примечание: автоматизировать очистку откатов можно скриптом, который удаляет все disabled‑ревизии, кроме самой актуальной. Пример алгоритма описан в разделе «Шаблон команд».

2. Удаление неиспользуемых Snap‑пакетов

Регулярно проверяйте список установленных снапов и удаляйте те, которыми не пользуетесь.

sudo snap list

Чтобы удалить пакет целиком:

sudo snap remove 

Где замените на имя пакета из вывода. Чтобы оценить, сколько места занимают снапы в домашнем каталоге, используйте:

du -h ~/snap

Если места мало, локально храните только те снапы, которые действительно нужны.

3. Удаление неиспользуемых зависимостей через системный менеджер

Snap обычно включает зависимости, но в системе всё равно могут остаться лишние пакеты, установленные через системный пакетный менеджер. Удалите ненужные зависимости командой вашего дистрибутива:

На Debian/Ubuntu:

sudo apt autoremove

На RHEL/Fedora:

sudo dnf autoremove

На Arch:

sudo pacman -Rns $(pacman -Qdtq)

Эти команды анализируют дерево зависимостей и удаляют пакеты, которые больше ни на что не ссылаются.

4. Использование другого пакетного менеджера, когда возможно

Если у вас жёсткие ограничения по диску, рассмотрите установку приложения через системный менеджер (APT, DNF, Pacman) вместо Snap. Процесс обычно такой:

  1. Удалите Snap‑версию: sudo snap remove package_name.
  2. Установите через системный пакетный менеджер:

На Debian/Ubuntu:

sudo apt install package_name

На RHEL/Fedora:

sudo dnf install package_name

На Arch:

sudo pacman -S package_name

Важно: некоторые приложения в дистрибутивах распространяются только в виде снапов (например, Firefox в Ubuntu в определённых выпусках). В таких случаях системный менеджер всё равно может задействовать Snap в фоновом режиме.

Когда не стоит удалять снапы и откаты

  • Если вы управляете сервером или рабочей станцией с критичным ПО, сохранение откатов может ускорить восстановление после проблем.
  • Если пакет получает частые обновления с регрессиями, хранение прошлой ревизии повышает безопасность отката.

Если же приоритет — свободное дисковое пространство, безопасно удалить старые ревизии для большинства десктопных приложений.

Альтернативные подходы и миграция

  • Flatpak и AppImage — альтернативы Snap с другой моделью изоляции и распространения. Flatpak даёт тонкую настройку runtimes, а AppImage — один исполняемый файл без установки.
  • Для серверов и автоматизации рассмотрите контейнеры (Docker, Podman) вместо настольных снапов: они дают контроль над образом и размерами через слоистые образы.

Переходной сценарий:

  1. Оцените, доступна ли нужная версия приложения в APT/DNF/Pacman/Flatpak.
  2. Удалите Snap‑версию и установите альтернативную.
  3. Проверьте конфигурационные файлы и данные пользователя (часто остаются в ~/snap/ и нужно перенести конфликтующие настройки).

Ментальные модели и эвристики (heuristics)

  • Правило 80/20: удаляйте 20% пакетов, которые занимают 80% места.
  • Принцип минимальной нужности: держите только те пакеты, которые вы используете регулярно.
  • Приоритет отката: для критичных сервисов оставляйте одну старую ревизию, для всего остального — удаляйте.

Шпаргалка по командам (cheat sheet)

  • Посмотреть все снапы с ревизиями: snap list --all
  • Удалить конкретную ревизию: sudo snap remove --revision=
  • Удалить снап полностью: sudo snap remove
  • Показать размер в ~/snap: du -h ~/snap
  • Удалить неиспользуемые пакеты APT: sudo apt autoremove
  • Удалить неиспользуемые пакеты DNF: sudo dnf autoremove
  • Удалить неиспользуемые пакеты Pacman: sudo pacman -Rns $(pacman -Qdtq)

Ролевые чек‑листы

Администратор сервера:

  • Перед удалением ревизий сделать резервную копию конфигураций.
  • Проверить, что обновления не прервут зависимости сервисов.
  • Удалить disabled‑ревизии для пользовательских приложений.

Пользователь десктопа:

  • Записать список часто используемых приложений.
  • [ ] Удалить лишние снапы через snap remove.
  • [ ] Очистить ~/snap и проверить настройки приложений.

DevOps / SRE:

  • Автоматизировать или запланировать очистку ревизий в нерабочее время.
  • Тестировать установку/удаление на тестовой машине перед массовыми изменениями.

Мини‑методология: как безопасно освободить место (шаги)

  1. Оцените текущую картину: snap list --all и du -h ~/snap.
  2. Сделайте резервные копии конфигураций критичных приложений.
  3. Удалите явно неиспользуемые пакеты: sudo snap remove .
  4. Удалите disabled‑ревизии по одной или скриптом.
  5. Очистите системные неиспользуемые пакеты через apt/dnf/pacman.
  6. Проверьте систему на предмет сломанных зависимостей.
  7. Настройте регулярную проверку (cron/ systemd timer).

Шаблон скрипта для массовой очистки disabled‑ревизий

#!/bin/bash
# Удаляет все disabled ревизии snap, кроме активной
snap list --all | awk '/disabled/{print $1, $3}' | while read snapname rev; do
  echo "Удаляю $snapname ревизия $rev"
  sudo snap remove "$snapname" --revision="$rev"
done

Запустите после проверки вывода: сначала выполните snap list --all и убедитесь в корректности списка.

Решающее дерево для выбора стратегии

flowchart TD
  A[Мало диска?] -->|Да| B{Приложение критично?}
  A -->|Нет| Z[Ничего не делать]
  B -->|Да| C[Оставить откат, удалить остальные]
  B -->|Нет| D[Удалить snap или заменить]
  D --> E{Есть версия в APT/DNF/Pacman/Flatpak?}
  E -->|Да| F[Переустановить через системный менеджер]
  E -->|Нет| G[Оставить snap, удалить старые ревизии]

Критерии приёмки

  • Освобождено достаточно места для нормальной работы (по вашим требованиям).
  • Критичные сервисы работают корректно после удаления ревизий.
  • Настроен план регулярной проверки и очистки.

Когда Snap — лучшее решение

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

Итог и рекомендации

Snap удобен и повышает совместимость, но требует внимания к месту на диске. Регулярно проверяйте snap list --all, удаляйте disabled‑ревизии и неиспользуемые пакеты. Для машин с ограниченным диском рассматривайте установку приложений через системный пакетный менеджер или альтернативы (Flatpak, AppImage).

Важно: всегда делайте проверку и резервирование перед массовыми удалениями.

Краткое резюме:

  • Snap упрощает зависимости, но увеличивает объём пакетов.
  • Удаляйте disabled‑ревизии и неиспользуемые снапы.
  • Используйте apt/dnf/pacman для управления системными зависимостями.
  • Рассмотрите Flatpak/AppImage или контейнеры для альтернатив.

Удаление неиспользуемых зависимостей на Arch Linux

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Chrome-расширения в Opera: как установить
Браузеры

Chrome-расширения в Opera: как установить

Низкоракурсная фотография на смартфон
Фотография

Низкоракурсная фотография на смартфон

Выключение и перезагрузка Windows 10 через CMD
Windows

Выключение и перезагрузка Windows 10 через CMD

Форматирование текста в WhatsApp
Мессенджеры

Форматирование текста в WhatsApp

Как сменить имя пользователя на eBay
Инструкции

Как сменить имя пользователя на eBay

Полосы прогресса в Excel — как сделать
Excel

Полосы прогресса в Excel — как сделать