Поиск по сайту:

Что нужно знать о Snaps в Ubuntu 20.04


Ubuntu 20.04 Focal Fossa — фантастический релиз, получивший широкое признание. Однако решение изменить Центр программного обеспечения для установки приложений на основе оснастки вызывает споры. Мы объясним, что это значит для вас.

Что такое пакет Snap в Linux?

«Snap» относится как к команде snap, так и к установочному файлу snap. Snap объединяет приложение и все его зависимые элементы в один сжатый файл. Зависимыми элементами могут быть библиотечные файлы, веб-серверы или серверы баз данных или что-то еще, что должно запускаться и работать приложению.

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

Вы можете ожидать, что снап будет несжатым, а файлы будут извлечены во время установки. Однако во время выполнения файл моментального снимка монтируется на устройстве с блочной петлей. Это позволяет получить доступ к внутренней файловой системе файла SquashFS.

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

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

Snaps также подвергались критике за то, что они не соответствуют теме рабочего стола и их автоматическим обновлениям. Некоторые люди также насторожены, потому что снимки не обязательно сделаны авторами программного обеспечения. Поэтому они не считают их на 100 процентов «официальными».

Итак, с Focal Fossa Canonical заменила приложение Ubuntu Software версией, которая по умолчанию устанавливает снимки. Что это значит для тебя?

Центр программного обеспечения Ubuntu

Мы можем использовать команду df, чтобы вывести список файловых систем SquashFS, смонтированных на вашем компьютере. Мы будем использовать параметр -t (тип), чтобы ограничить вывод интересующими нас файловыми системами:

df -t squashfs

Затем мы используем команду snap list, чтобы получить список установленных моментальных снимков:

snap list

Есть две оснастки, относящиеся к рабочему столу GNOME, две — к основным функциям оснастки, одна — к темам GTK и одна — к хранилищу моментальных снимков. Конечно, приложение snap-store тоже несложное.

Вот в чем дело: если вы запустите команду snap-store в окне терминала, запущенным приложением будет программное обеспечение Ubuntu.

Конечно, вы обычно запускаете приложение Ubuntu Software, щелкнув его значок. Мы запускаем его из командной строки, чтобы продемонстрировать, что под поверхностью теперь находится приложение snap-store:

snap-store

Приложение Ubuntu Software выглядит именно так, как вы и ожидали. Вы можете искать все то же программное обеспечение, что и раньше.

Давайте найдем и установим приложение sqlitebrowser. На экране результатов отображаются сведения о приложении и снимок экрана. Выберите «Установить», чтобы установить программное обеспечение.

Если бы вы не знали, вы бы не заподозрили изменения под капотом. Прокрутите вниз, и вы увидите новую информацию, относящуюся к оснастке.

Список «Подробности» содержит следующую информацию:

  • Канал. Канал, из которого программа установки загрузит приложение.
  • Версия: версия программного обеспечения.
  • Лицензия: тип лицензии.
  • Разработчик: человек, создавший снимок, или люди, написавшие приложение.
  • Источник: источник, из которого будет загружен снимок (snapcraft.io — это хранилище снимков Canonical Snapcraft).
  • Размер загрузки: размер файла снимка.

Канал может быть одним из следующих:

  • Стабильный: пакет по умолчанию, который содержит наиболее стабильные и надежные пакеты.
  • Кандидат. Этот канал менее стабилен, но очень близок к нему, так как содержит программное обеспечение уровня кандидата.
  • Бета: качество этого канала находится на позднем этапе разработки, но его стабильность не гарантируется.
  • Edge: для первых тестировщиков сборки и любознательных. Вы не должны использовать этот канал для чего-либо важного.

После завершения установки мы можем снова проверить список установленных снапов:

snap list

Новая запись указана внизу. Запускаем программу:

sqlitebrowser

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

Установка из командной строки

При установке приложений из командной строки ничего не изменилось. У вас по-прежнему есть доступ к инструменту командной строки snap, так что вы можете устанавливать и удалять snap в окне терминала. Команда установки apt-get и apt, оболочка apt-get, также остались на месте.

Давайте установим это же приложение из командной строки. Поскольку версия, которую мы установили выше, является оснасткой, они никак не повлияют друг на друга:

sudo apt-get install sqlitebrowser

Дайте установке завершиться. Нажмите клавишу Super и введите «sqlitebrowser». После ввода нескольких символов вы увидите две версии программы на своем компьютере.

Зажгите их обоих.

Как видите, у нас одновременно установлены и работают две разные версии.

Версия на обратной стороне изображения — это та, которую мы установили из командной строки, а версия на переднем плане — та, что в оснастке:

  • Версия apt-get — 3.11.2.
  • Версия snap — 3.11.99.

Несмотря на внешний вид, версия для командной строки является более старой. Несмотря на это, очевидно, что две версии сосуществуют и прекрасно работают вместе. Таким образом, снэпы делают то, что должны, с ограждением разных версий одного и того же приложения.

Кроме того, установка приложений из командной строки с помощью apt или apt-get выполняется так же, как всегда, и на нее вообще не влияют снимки.

Что следует использовать?

Вам вообще не все равно, какой тип приложения вы используете? Если нет, идите с защелками.

Если что-либо из следующего является нарушителем соглашения (или несколько из них в сумме составляют одно), держитесь подальше от приложения Ubuntu Software и устанавливайте свои приложения традиционным способом:

  • Snaps загружаются медленнее. Это будет более заметно на старом оборудовании.
  • Snaps занимают больше места на жестком диске.
  • Snap обновляются автоматически.
  • Снэпы могут не соответствовать установленным темам.
  • Снэпы не всегда являются «официальными». Их часто строят добровольцы из лучших побуждений.

Если ваш компьютер достаточно современный, разница в скорости между запуском снапа и обычного приложения не будет огромной. Самая большая потеря времени, которую мы заметили, была во время установки. Снапы загружались намного дольше. После загрузки файлов установка прошла достаточно быстро. Однако загрузка — это разовая задача, поэтому вам не придется заниматься ею ежедневно.

Даже если вы думаете, что снэпы — это будущее, и вы готовы всем сердцем принять их, вы не можете идти ва-банк с ними. Некоторые приложения недоступны в моментальной форме. В этих случаях вам все равно придется устанавливать их из командной строки.

Очевидно, что этим шагом Canonical прибивает свои краски к мачте. Что касается разработчиков Ubuntu, снэпы никуда не денутся. Как всегда, вы можете либо использовать их, либо игнорировать, либо иметь гибридную систему, которая смешивает и сочетает моментальные снимки и традиционные установки на основе DEB.