Когато инсталирате софтуерни пакети на Linux със snap, можете да кажете сбогом на ада на зависимостите и разбиването на други работещи приложения. Snap пакетите първоначално са проектирани за Ubuntu, но вече са налични в различни дистрибуции на Linux.
Съдържание
Какво представляват Snap пакетите?
В миналото инсталирането на приложения на Linux беше потенциално разочароващо преживяване. Бихте инсталирали нещо само за да откриете, че конкретна библиотека или друга зависимост липсва или е остаряла. След това ще откриете липсващия ресурс и ще го инсталирате, само за да намерите друго приложение в зависимост от версията на библиотеката, която току-що сменихте. Поправете едно, счупете едно, повторете.
Това се подобри с по-добри системи за управление на пакети, напр ап, dnf, и пак Ман. Въпреки това, все още се сблъсквате с борба, ако имате нужда от инсталирани различни версии на едно и също приложение. Или, ако използвате две приложения, които се сблъскват, защото са свързани с конкретни, но различни, версии на библиотека.
Едно решение на тези проблеми са системите за пакетиране и внедряване на приложения. Бързък е един от най-популярните от тях. Тя се основава на система за опаковане и внедряване, наречена Click, която се връща към Ubuntu Touch инициатива. AppImage и Плосък пакет са други, които може да сте срещнали.
Тези системи капсулират приложението заедно с всякакви зависимости и други изисквания в един компресиран файл. След това приложението работи в нещо като мини-контейнер. Той е затворен в пясъчна среда и е отделен от други приложения. Библиотеките и другите ресурси, с които приложението е пакетирано или изисква, са достъпни само за него.
Те не са инсталирани в традиционния смисъл, така че не създават проблеми с други приложения, които изискват различни версии на същите ресурси. Можете дори да инсталирате и стартирате приложения, които се нуждаят от конфликтни версии на библиотеката, тъй като всяко приложение е в собствена пясъчна среда.
Ако обаче не са инсталирани по обичайния начин, как се справят с тях? Е, файлът с един пакет се изтегля, декомпресира и монтира като SquashFSвиртуална файлова система. След това ви се представя като виртуална среда. Всичко това се случва зад кулисите. Всичко, което ще знаете, е, че сте инсталирали приложение и сега имате достъп до него.
Разбира се, тъй като всеки пакет файл трябва да съдържа всеки ресурс, от който се нуждае приложението, пакетните файлове могат да бъдат големи. Също така е лесно да дублирате ресурс, който обикновено инсталирате само веднъж, като напр MySQL или Apache. Ако две различни приложения за щракване изискват едни и същи ресурси, всяко от тях носи свое собствено копие.
Това обаче е компромисът за простотата на инсталирането и премахването на главоболията, свързани с конфликта на ресурсите.
Инсталиране на 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.
Файловата система е посочена като: /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: За ранни тестери за изграждане. Не трябва да използвате този канал за важна работа или на производствен компютър. Ето драконите!
Издател: Лицето, компанията или организацията, които са пуснали пакета за моментални снимки. Ако беше проверен издател (и вашият терминален прозорец поддържа 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
В
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