Linux: snap vs deb

snap

Основное различие между Snap и Apt заключается в том, что apt установит в систему отдельный пакет, а Snap загрузит целый архив со всеми необходимыми компонентами и установит его в ограниченную папку, изолированную от системы.

Когда вы устанавливаете приложение с помощью Snap, вы скачиваете точный архив, созданный разработчиками для вашей архитектуры. Он был протестирован в тех же условиях и включает все зависимости. Этот архив будет извлечен в ограниченном пространстве (в чем-то он похож на приложения Docker) и имеет ограниченный доступ к операционной системе.

Разработчикам нравится использовать Snap, потому что они могут контролировать среду установки. Меньше конфликтов с другими приложениями или различными версиями зависимостей. Если это работает у разработчиков, то и в вашей системе должно работать так же. Они также могут быстрее развертывать обновления, поскольку им не нужно ждать, пока дистрибутив проверит их обновления (что может занять много времени, особенно в таких системах, как Debian, где стабильность является ключевым фактором).

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

Snap vs Apt: сравнение производительности

После установки и первого запуска нет никакой разницы в производительности между приложениями, установленными с помощью Snap или Apt. Но снэп-архивы намного больше, так как включают все зависимости (даже если они у вас уже есть), поэтому загрузка и первый запуск займут больше времени.

Это основное преимущество APT, если у вас ограниченное дисковое пространство (например, SD-карта на Raspberry Pi) или плохое подключение к Интернету. Пакеты меньше, и вы устанавливаете зависимости только один раз.

В других случаях это не имеет большого значения. Для примера, установим Thunderbird обоими способами. Размер пакета составляет 59 МБ, а архив Snap — 76 МБ. Это не большая разница, даже при ограниченном пространстве или плохом соединении, но со временем, когда вы устанавливаете все больше и больше приложений, разница будет более ощутимой.

Snap vs Apt: управление обновлениями

Snap и Apt по-разному обрабатывают обновления. Обновления Snaps проверяются автоматически 4 раза в день и обновляются, как только появляется новая версия. С помощью Apt системный администратор контролирует процесс обновления.

Snap — это демон (помните «d» в конце «snapd»). Таким образом, это служба работает постоянно и регулярно проверяет наличие обновлений. Вы можете немного отложить эту проверку, но не можете избежать обновления приложений. Это идеально, если вы хотите, чтобы в вашей системе всегда была установлена ​​​​последняя версия.

С другой стороны, apt передает управление конечному пользователю (или системному администратору). Вы можете включить автоматические обновления безопасности (например, с автоматическими обновлениями), но в целом обновление приложения будет выполняться только тогда, когда вы решите (запустив apt upgrade или используя графический эквивалент).

Примечание: возможно установить несколько версий одного и того же приложения с помощью snap. Это не очень полезно для большинства пользователей, но разработчикам может понравиться этот вариант. Например, если вы разрабатываете расширения для Thunderbird, вы можете установить последнюю версию и последнюю бета-версию, чтобы убедиться, что ваше расширение работает на обоих, прежде чем выпускать его для всех.

Что безопаснее Snap или Apt?

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

Итак, если вы доверяете разработчикам, Snap, вероятно, безопаснее, так как меньше шансов создать конфликт, беспорядок с зависимостями или что-то подобное в вашей системе. Каждое приложение находится в отдельном виртуальном разделе, когда у вас установлена ​​куча снапов, это выглядит так:

snap volume

Apt установит новые пакеты в их обычные папки (например, в /etc или /opt). Мне это больше нравится, потому что, когда вы будете искать помощь в онлайн-документации, вам будет указан именно этот путь.

С точки зрения безопасности, если вы используете официальные репозитории для своего дистрибутива, вы будите в безопасности. Группа разработчиков из организации-распространителя просматривает код каждого обновления, иногда долго тестирует приложение в «бета-версии», прежде чем выпустить его. Итак, когда он, наконец, будет доступен с apt upgrade, его установка будет безопасной.

Цикл обновления более или менее длинный в зависимости от вашего дистрибутива (пример: Ubuntu работает быстро, Debian очень медленно), но в целом достаточно безопасно установить его, как только он станет доступным. Очевидно, что если вы используете сторонние репозитории или PPA, это примечание неприменимо, так как дистрибутив не имеет контроля над этими пакетами.

Если безопасность является главной проблемой, следует избегать репозиториев PPA и сторонних разработчиков. Без проверки и без контейнера — это наиболее худший из вариантов.

Snap против Apt: плюсы и минусы

Плюсы и минусы использования Snap

Плюсы Минусы
Обновления доступны быстро. Занять больше места на диске.
Та же среда, что и у разработчика. Загружать дольше.
Легче для начинающих. Расположение файлов другое.
Всегда актуально. Нет возможности контролировать обновления.
Никаких следов в системе после удаления. Работает не во всех дистрибутивах
(например, снимки ОС RPI не отображаются в главном меню).
Никаких проблем с зависимостью. Snap доступны не на всех архитектурах.
Может быть безопаснее, так как приложение находится в отдельном разделе.

Плюсы и минусы использования Apt

Плюсы Минусы
Лучшая интеграция с графическим интерфейсом в целом. Могут возникнуть трудности с поиском пакета для установки.
Легче следовать документации, так как файлы расположены по правильному пути (/etc, /var/log и т.д.). Никаких обновлений после устаревания версии дистрибутива.
Может быть безопаснее, так как приложение проверяется разработчиком дистрибутива. Немного сложно для начинающих/не технически подкованных пользователей.
Пользователь имеет полный контроль над процессом обновления.

Snap или Apt: что использовать?

В целом, snap рекомендуется для пользователей настольных компьютеров, особенно новичков, которым нужен простой способ установки приложений и поддержания их в актуальном состоянии, в то время как apt, как правило, лучше для опытных пользователей в критически важных системах, которые хотят контролировать все. на компьютере или сервере.

В конце концов, это личный выбор. Если вы доверяете разработчикам, у вас хорошее интернет, достаточно места на диске и вам нужна последняя версия, Snap, вероятно, идеально вам подойдет.

Если стабильность системы важнее, чем наличие последней версии (особенно для серверов и рабочих компьютеров), и вы хотите убедиться, что все протестировано и одобрено, прежде чем обновлять критически важные части вашей системы, Apt, вероятно, будет лучшим выбором.

Если вы находитесь посередине, вам нужно сделать выбор или, возможно, сначала протестировать менее чувствительные приложения и посмотреть, как оно работает. Я считаю, что это немного похоже на выбор между Ubuntu и Debian. Я могу предпочесть установить Ubuntu на начальный компьютер, так как он проще в использовании, содержит последние версии приложений и т. д. вся система).

Итого

apt — установка из маленьких пакетов, вместе образующих большую и сложную систему, при этом софт может массово совместно использовать одни и те же файлы и библиотеки, благодаря чему экономится место на диске, оперативная память итд итп. Надо понимать, что apt — это пакетный менеджер для определённого вида пакетов (deb), хотя в своё время существовал вариант для rpm (может и сейчас существует, просто смысла в нём мало после появления yum).

snap — установка большого приложения со всеми зависимостями, которые никак не использует остальной софт на этом же компьютере. Отсюда тратится лишнее место на диске и в оперативной памяти. Зато никаких проблем с зависимостями, плюс snap работает в любых системах и не завязан на конкретный менеджер пакетов и собственно пакетный формат.

snap по большому счёту часто используют для установки тяжёлых приложений, которые может быстро сложно опакетить, особенно учитывая разнообразие присутствующих в мире дистрибутивов (debian/ubuntu и их клоны) разных версий. В то время как большинство штатного общеиспользуемого софта чаще распространяют в виде пакетов, идущих в составе дистрибутива или отдельно (в том числе в виде разных собранных под разные варианты систем пакетов).

Мой личный выбор — использовать чаще apt. Единственное исключение — если нужного мне приложения нет в репозитории, но доступен снап. И снап буду ставить только на некритичный комп. Например, на сервере я всегда буду устанавливать приложение из исходного кода, если оно недоступно в репозитории.

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

Добавить комментарий

Ваш адрес email не будет опубликован.