Как работать с 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 | ||
Файлы | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Процессы | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · тайм-аут · стена · да · убить · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · дата · bg · fg | |
Сеть | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
СВЯЗАННЫЕ С: Лучшие ноутбуки с Linux для разработчиков и энтузиастов