Как да работите със Snap пакети в Linux

Когато инсталирате софтуерни пакети на Linux със snap, можете да кажете сбогом на ада на зависимостите и разбиването на други работещи приложения. Snap пакетите първоначално са проектирани за Ubuntu, но вече са налични в различни дистрибуции на Linux.

Какво представляват Snap пакетите?

В миналото инсталирането на приложения на Linux беше потенциално разочароващо преживяване. Бихте инсталирали нещо само за да откриете, че конкретна библиотека или друга зависимост липсва или е остаряла. След това ще откриете липсващия ресурс и ще го инсталирате, само за да намерите друго приложение в зависимост от версията на библиотеката, която току-що сменихте. Поправете едно, счупете едно, повторете.

Това се подобри с по-добри системи за управление на пакети, напр ап, dnf, и пак Ман. Въпреки това, все още се сблъсквате с борба, ако имате нужда от инсталирани различни версии на едно и също приложение. Или, ако използвате две приложения, които се сблъскват, защото са свързани с конкретни, но различни, версии на библиотека.

Едно решение на тези проблеми са системите за пакетиране и внедряване на приложения. Бързък е един от най-популярните от тях. Тя се основава на система за опаковане и внедряване, наречена Click, която се връща към Ubuntu Touch инициатива. AppImage и Плосък пакет са други, които може да сте срещнали.

Тези системи капсулират приложението заедно с всякакви зависимости и други изисквания в един компресиран файл. След това приложението работи в нещо като мини-контейнер. Той е затворен в пясъчна среда и е отделен от други приложения. Библиотеките и другите ресурси, с които приложението е пакетирано или изисква, са достъпни само за него.

Те не са инсталирани в традиционния смисъл, така че не създават проблеми с други приложения, които изискват различни версии на същите ресурси. Можете дори да инсталирате и стартирате приложения, които се нуждаят от конфликтни версии на библиотеката, тъй като всяко приложение е в собствена пясъчна среда.

Ако обаче не са инсталирани по обичайния начин, как се справят с тях? Е, файлът с един пакет се изтегля, декомпресира и монтира като SquashFSвиртуална файлова система. След това ви се представя като виртуална среда. Всичко това се случва зад кулисите. Всичко, което ще знаете, е, че сте инсталирали приложение и сега имате достъп до него.

Разбира се, тъй като всеки пакет файл трябва да съдържа всеки ресурс, от който се нуждае приложението, пакетните файлове могат да бъдат големи. Също така е лесно да дублирате ресурс, който обикновено инсталирате само веднъж, като напр MySQL или Apache. Ако две различни приложения за щракване изискват едни и същи ресурси, всяко от тях носи свое собствено копие.

  Как да коригирате проблеми с мишката и клавиатурата Corsair на macOS и Linux

Това обаче е компромисът за простотата на инсталирането и премахването на главоболията, свързани с конфликта на ресурсите.

Инсталиране на snapd

Snappy беше представен с Ubuntu 16.04, така че ако използвате тази версия или по-нова версия, вече сте готови. На нашата машина Snappy беше инсталиран на Manjaro 18.04, но трябваше да го инсталираме на Fedora 31.

snap е както името на пакетните файлове, така и командата, която използвате за взаимодействие с тях. Зад кулисите, демонът snapd е и името на пакета, който трябва да инсталирате, ако все още нямате Snappy на вашия компютър.

За да инсталирате snapd на Fedora, въведете следната команда:

sudo dnf install snapd

В

Ако трябва да го инсталирате на Manjaro, използвайте тези команди:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

Можете да използвате командата snap version, за да видите версията на snap клиента, snapd демона и серийния номер на софтуера. Името и изданието на вашата Linux дистрибуция и версията на ядрото също ще се покажат за вас.

Въведете следното:

snap version

В

Инсталиране на snap пакети

Това е доста лесен процес за инсталиране на snap пакет. Можете да използвате snap, за да потърсите snap пакети и след това да инсталирате този, който искате.

Пишем следното, за да търсим и инсталираме редакторът на изображения gimp:

snap find gimp

В

snap търси съвпадения с уликата за търсене „gimp“ и връща своите констатации. Ще намери всичко, което съвпада или споменава думата за търсене.

За да инсталираме един от пакетите, използваме стойността от колоната Име, както е показано по-долу:

sudo snap install gimp

В

Докато се изтегля, процентът на завършената цифра се повишава и лентата за напредък пълзи отляво на прозореца на терминала. Когато инсталацията приключи, се появява съобщение (както е показано по-долу), което ви казва, че пакетът е инсталиран.

А

Можете да използвате командата df за проверете капацитета и употребата от различните файлови системи, конфигурирани на вашия компютър с Linux. Ако пренесем изхода му в командата grep и потърсим „gimp“, ние изолирайте входа за пакета току що инсталирахме.

Пишем следното:

df | grep gimp

В

Това ни показва, че пакетът snap е монтиран, сякаш е файлова система. Точката на монтиране е в директорията на snap тук: /snap/gimp/252. „252“ е номерът на изданието на тази версия на gimp.

  Как да проверите здравето на твърдия диск в 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 пакети:

snap list

Резултатът беше малко широк, така че краят на списъците е показан по-долу.

Ето целия списък:

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

Както можете да видите, има инсталирани 10 snap пакета, а не 18. Тези 10 пакета обаче са довели до 18 файлови системи SquashFS. Колоните на таблицата са доста обясними, но ето някои уточнения:

Име: Името на пакета snap, който е бил инсталиран.
Версия: Номерът на версията на софтуера в пакета snap.
Rev: Номерът на ревизията на пакета за щракване.
Проследяване: Каналът, който този моментен пакет следи за актуализации. Има четири:
Стабилен: Каналът по подразбиране. Както се казва в името му, този канал съдържа най-стабилните пакети.
Кандидат: Този канал е по-малко стабилен, но много близък до него, защото съдържа софтуер на ниво кандидат, който е пълен с код. Той преминава през последно тестване, преди да бъде преместен в стабилния канал.
Бета: Този канал е с качество на късния цикъл на разработка, но не е гарантирано, че ще бъде стабилен.
Edge: За ранни тестери за изграждане. Не трябва да използвате този канал за важна работа или на производствен компютър. Ето драконите!

  Как да инсталирате SSH на Linux и полезни команди

Издател: Лицето, компанията или организацията, които са пуснали пакета за моментални снимки. Ако беше проверен издател (и вашият терминален прозорец поддържа Unicode), ще видите зелена отметка до името на издателя. Ако не може да покаже отметка, ще видите звездичка
.

Бележки: Всички коментари или допълнителна информация ще се покажат тук.

Канали за моментални снимки

Можете да използвате опцията за информация, за да получите описание на един моментен пакет.

snap info gtk-common-themes

За целта набираме следното:

В

Можем да видим кой канал проследява пакетът и версията на софтуера в snap пакетите във всеки от четирите канала. В повечето случаи трябва да останете на стабилния канал.

Един моментен пакет проверява четири пъти на ден, за да види дали е налична по-нова версия на софтуера от канала, който гледа или „проследява“. Ако искате да промените канала, който записва пакетът, можете да използвате опциите за опресняване и –канал.

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

За целта набираме следното:

В

Ако беше налична по-нова версия на софтуера, тя щеше да бъде инсталирана, но случаят не беше тук. Въпреки това, пакетът snap сега проследява бета канала. Веднага след като бъде пусната нова бета версия, тя автоматично се изтегля и надгражда.

Можете да използвате опцията –списък, за да проверите дали са налични актуализации за някой от пакетите, инсталирани на вашия компютър.

sudo snap refresh --list

За целта набираме следното:

В

Ще ви бъде казано дали някой от каналите, които проследяват пакетите за бърз достъп на вашия компютър, съдържа по-нови версии на софтуера.

sudo snap refresh gtk-common-themes

Ако е налична по-нова версия на софтуера, можете да използвате опцията за опресняване, както е показано по-долу, за ръчно принудително опресняване:

В

Премахване на пакет за щракване

sudo snap remove gimp

За да деинсталирате snap пакет, можете да използвате опцията за премахване, както е показано по-долу:

В

The snap Cheat Sheet

Използването на snap пакети е доста просто, но ние съставихме списък с някои команди, които ще ви помогнат:
За да търсите пакет: щракнете върху find package_name
За да инсталирате пакет: sudo snap install ime_пакета
За да видите всички инсталирани пакети: 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