Как работать с Snap-пакетами в Linux

Опубликовано: 2022-01-29
Убунту

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

Что такое Snap-пакеты?

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

Это улучшилось благодаря более совершенным системам управления пакетами, таким как apt, dnf и pacman. Однако вы все равно столкнетесь с трудностями, если вам нужны разные версии одного и того же приложения. Или, если вы используете два приложения, которые конфликтуют, потому что они привязаны к определенным, но разным версиям библиотеки.

Одним из решений этих проблем являются системы упаковки и развертывания приложений. Snappy является одним из самых популярных из них. Он основан на системе упаковки и развертывания под названием Click, которая восходит к инициативе Ubuntu Touch. AppImage и FlatPack — это другие, с которыми вы могли столкнуться.

Эти системы инкапсулируют приложение вместе со всеми зависимостями и другими требованиями в один сжатый файл. Затем приложение запускается в своего рода мини-контейнере. Он находится в песочнице и отделен от других приложений. Библиотеки и другие ресурсы, с которыми приложение упаковано или которые требуются, доступны только ему одному.

Реклама

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

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

Конечно, поскольку каждый файл пакета должен содержать все ресурсы, необходимые приложению, файлы пакета могут быть большими. Также легко продублировать ресурс, который вы обычно устанавливаете только один раз, например MySQL или Apache. Если два разных приложения snap снимков требуют одних и тех же ресурсов, каждое из них создает собственную копию.

Однако это компромисс за простоту установки и устранение головной боли, связанной с конфликтом ресурсов.

Установка оснастки

Snappy был представлен в Ubuntu 16.04, поэтому, если вы используете эту или более позднюю версию, вы уже готовы к работе. На нашей машине Snappy был установлен на Manjaro 18.04, но нам пришлось установить его на Fedora 31.

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

Чтобы установить snapd в Fedora, введите следующую команду:

 sudo dnf установить snapd 

Реклама

Если вам нужно установить его на Manjaro, используйте эти команды:

 sudo pacman -Sy snapd
 sudo systemctl включить --now snapd.socket

Вы можете использовать команду snap version , чтобы увидеть версию клиента snap , демона snapd и номер серии программного обеспечения. Вам также будут показаны название и выпуск вашего дистрибутива Linux и версия ядра.

Введите следующее:

 моментальная версия 

Установка snap-пакетов

Это довольно простой процесс установки snap -пакета. Вы можете использовать snap для поиска пакетов snap , а затем установить тот, который вы хотите.

Мы вводим следующее, чтобы найти и установить редактор изображений gimp:

 быстро найди канитель 

snap ищет совпадения с ключом поиска «gimp» и возвращает свои результаты. Он найдет все, что соответствует поисковому запросу или упоминает его.

Чтобы установить один из пакетов, мы используем значение из столбца Name , как показано ниже:

 sudo snap установить gimp 

Реклама

По мере загрузки процент завершения увеличивается, а индикатор выполнения ползет слева от окна терминала. Когда установка будет завершена, появится сообщение (как показано ниже), говорящее о том, что пакет был установлен.

Вы можете использовать команду df для проверки емкости и использования различных файловых систем, настроенных на вашем компьютере с Linux. Если мы направим его вывод в команду grep и найдем «gimp», мы изолируем запись только что установленного пакета.

Набираем следующее:

 дф | grep канитель 

Это показывает нам, что пакет Snap был смонтирован, как если бы это была файловая система. Точка монтирования находится в каталоге snap здесь: /snap/gimp/252 . «252» — это номер версии этой версии gimp .

СВЯЗАННЫЕ С: Как использовать команду grep в Linux

Файловая система указана как: /dev/loop18 . Файлы циклических устройств используются для того, чтобы сделать обычные файлы доступными в качестве блочных устройств. Обычно они используются для монтирования файловых систем в образах дисков. В данном случае они монтируют файловую систему SquashFS в пакете snap . «18» означает, что это 18-й файл устройства /dev/loop , используемый на этом компьютере с Linux.

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

Набираем следующее:

 df -t squashfs 

Перечислены смонтированные файловые системы SquashFS . Файл устройства /dev/loop обрабатывает каждое из них, а всего их 18.

Реклама

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

Кроме того, когда вы устанавливаете snapd , он устанавливает некоторые основные пакеты snap снимков для удовлетворения потребностей других пакетов snap снимков.

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

 список моментальных снимков 

Вывод получился немного широким, поэтому конец листинга показан ниже.

Вот весь список:

 Название Версия Отслеживание оборотов Примечания издателя
ядро 16-2.43.3 8689 стабильное каноническое* ядро
core18 20200124 1668 стабильная каноническая* база
gimp 2.10.18 252 стабильных снапкрафтера -
gnome-3-26-1604 3.26.0.20191114 98 стабильный/... канонический* -
gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 стабильный канонический* -
gnome-calculator 3.34.1+git1.d34dc842 544 стабильный/... канонический* -
gnome-characters v3.32.1+git3.b9120df 399 стабильный/... канонический* -
gnome-logs 3.34.0 81 стабильный/... канонический* -
gnome-system-monitor 3.32.1-3-g0ea89b4922 127 стабильный/... канонический* -
gtk-common-themes 0.1-28-g1503258 1440 стабильный/... канонический* -

Как видите, установлено 10 пакетов моментальных снимков, а не 18. Однако эти 10 пакетов привели к 18 файловым системам SquashFS . Столбцы таблицы говорят сами за себя, но вот некоторые пояснения:

  • Имя : имя установленного пакета snap снимков.
  • Версия : номер версии программного обеспечения в пакете snap снимков.
  • Rev : номер версии пакета snap снимков.
  • Отслеживание : Канал, который этот пакет snap снимков отслеживает на наличие обновлений. Есть четыре:
    • Стабильный: канал по умолчанию. Как следует из названия, этот канал содержит самые стабильные пакеты.
    • Кандидат: этот канал менее стабилен, но очень близок к нему, потому что он содержит программное обеспечение уровня кандидата на выпуск, которое является полным кодом. Он проходит окончательное тестирование, прежде чем будет переведен в стабильный канал.
    • Бета-версия: качество этого канала находится на позднем этапе разработки, но его стабильность не гарантируется.
    • Edge: для тестировщиков ранних сборок. Вы не должны использовать этот канал для важной работы или на рабочем компьютере. Вот драконы!
  • Издатель : физическое лицо, компания или организация, выпустившая пакет snap . Если это был проверенный издатель (и окно вашего терминала поддерживает Unicode), вы увидите зеленую галочку рядом с именем издателя. Если он не может показать галочку, вы увидите звездочку ( * ).
  • Примечания : здесь будут отображаться любые комментарии или дополнительная информация.

Каналы привязки

Вы можете использовать опцию info , чтобы получить описание snap -пакета.

Для этого набираем следующее:

 оснастки информация gtk-общие-темы 

Реклама

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

Пакет snap проверяет четыре раза в день, чтобы узнать, доступна ли более новая версия программного обеспечения на канале, который он просматривает или «отслеживает». Если вы хотите изменить канал, который отслеживает пакет snap снимков, вы можете использовать параметры refresh и --channel .

Для этого набираем следующее:

 sudo snap update gtk-common-themes --channel=beta 

Если бы была доступна более новая версия программного обеспечения, она была бы установлена, но здесь это было не так. Однако пакет snap теперь отслеживает бета-канал. Как только выходит новая бета-версия, она автоматически загружается и обновляется.

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

Для этого набираем следующее:

 sudo snap обновить --list 

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

Реклама

Если доступна более новая версия программного обеспечения, вы можете использовать параметр refresh , как показано ниже, чтобы принудительно выполнить обновление вручную:

 sudo snap обновить gtk-common-themes 

Удаление snap-пакета

Чтобы удалить пакет snap , вы можете использовать опцию удаления, как показано ниже:

 sudo snap удалить gimp 

Быстрая шпаргалка

Использовать пакеты моментальных снимков довольно просто, но мы составили список некоторых команд, которые вам помогут:

  • Для поиска пакета: snap find package_name
  • Чтобы установить пакет: sudo snap install package_name
  • Чтобы увидеть все установленные пакеты: snap list
  • Чтобы получить информацию об одном пакете: snap info package_name
  • Чтобы изменить канал, который пакет отслеживает для обновлений: sudo snap refresh package_name --channel=channel_name
  • Чтобы узнать, готовы ли обновления для каких-либо установленных пакетов: sudo snap refresh --list
  • Чтобы вручную обновить пакет: sudo snap refresh package_name
  • Чтобы удалить пакет: sudo snap remove package_name

СВЯЗАННЫЕ С: Лучшие ноутбуки с Linux для разработчиков и энтузиастов