Jak pracować z pakietami Snap w systemie Linux

Kiedy instalujesz pakiety oprogramowania Linux za pomocą przystawki, możesz pożegnać się z piekłem zależności i zepsuciem innych działających aplikacji. Pakiety Snap były pierwotnie zaprojektowane dla Ubuntu, ale są teraz dostępne w różnych dystrybucjach Linuksa.

Co to są pakiety Snap?

W przeszłości instalowanie aplikacji w systemie Linux było potencjalnie frustrującym doświadczeniem. Zainstalowałbyś coś tylko po to, aby znaleźć konkretną bibliotekę lub inną zależność, której brakuje lub jest nieaktualna. Następnie wyszukujesz brakujący zasób i instalujesz go, tylko po to, aby znaleźć inną aplikację zależną od wersji biblioteki, którą właśnie zastąpiłeś. Napraw jeden, złam jeden, powtórz.

Poprawiło się to dzięki lepszym systemom zarządzania pakietami, takim jak trafny, dnf, i pacman. Jednak nadal masz problemy, jeśli potrzebujesz zainstalowanych różnych wersji tej samej aplikacji. Lub jeśli używasz dwóch aplikacji, które kolidują ze sobą, ponieważ są powiązane z określonymi – ale różnymi – wersjami biblioteki.

Jednym z rozwiązań tych problemów są systemy pakowania i wdrażania aplikacji. Żwawy jest jednym z bardziej popularnych. Opiera się na systemie pakowania i wdrażania o nazwie Click, który nawiązuje do Ubuntu Touch inicjatywa. AppImage i FlatPack czy są inni, których mogłeś spotkać.

Systemy te hermetyzują aplikację wraz z wszelkimi zależnościami i innymi wymaganiami w jednym skompresowanym pliku. Aplikacja działa wtedy w czymś w rodzaju mini-kontenera. Jest w piaskownicy i oddzielony od innych aplikacji. Biblioteki i inne zasoby, z którymi aplikacja jest dostarczana lub których wymaga, są dostępne tylko dla niej.

Nie są instalowane w tradycyjnym sensie, więc nie powodują problemów z innymi aplikacjami, które wymagają różnych wersji tych samych zasobów. Możesz nawet instalować i uruchamiać aplikacje, które wymagają sprzecznych wersji bibliotek, ponieważ każda aplikacja znajduje się we własnej piaskownicy.

Jeśli jednak nie są instalowane w zwykły sposób, jak się z nimi obchodzi? Cóż, pojedynczy plik pakietu jest pobierany, dekompresowany i montowany jako SquashFSwirtualny system plików. Następnie jest przedstawiany jako wirtualne środowisko. Wszystko to odbywa się za kulisami. Będziesz wiedział tylko, że zainstalowałeś aplikację i masz do niej dostęp.

Oczywiście, ponieważ każdy plik pakietu musi zawierać wszystkie zasoby potrzebne aplikacji, pliki pakietów mogą być duże. Łatwo jest również zduplikować zasób, który zwykle instalowałbyś tylko raz, na przykład MySQL lub Apache. Jeśli dwie różne aplikacje przyciągania wymagają tych samych zasobów, każda z nich dostarcza własną kopię.

Jest to jednak koszt prostoty instalacji i usunięcia problemów związanych z konfliktem zasobów.

Instalowanie snapd

Snappy został wprowadzony w Ubuntu 16.04, więc jeśli używasz tej wersji lub nowszej, jesteś już gotowy. Na naszej maszynie Snappy został zainstalowany na Manjaro 18.04, ale musieliśmy go zainstalować w Fedorze 31.

snap to zarówno nazwa plików pakietu, jak i polecenie używane do interakcji z nimi. W tle, demon snapd to także nazwa pakietu, który musisz zainstalować, jeśli nie masz jeszcze Snappy na swoim komputerze.

Aby zainstalować snapd w Fedorze, wpisz następujące polecenie:

sudo dnf install snapd

Plik

Jeśli chcesz zainstalować go na Manjaro, użyj tych poleceń:

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

Możesz użyć polecenia snap version, aby zobaczyć wersję klienta snap, demona snapd i numer serii oprogramowania. Nazwa i wydanie Twojej dystrybucji Linuksa oraz wersja jądra również zostaną wyświetlone.

Wpisz następujące informacje:

snap version

Plik

Instalowanie pakietów Snap

Instalacja pakietu przystawki jest dość prosta. Możesz użyć przyciągania, aby wyszukać pakiety przyciągania, a następnie zainstalować ten, który chcesz.

Wpisujemy następujące, aby wyszukać i zainstalować edytor obrazów gimp:

snap find gimp

Plik

snap wyszukuje dopasowania do wskazówki wyszukiwania „gimp” i zwraca wyniki. Znajdzie wszystko, co pasuje do wyszukiwanego hasła lub wspomina o nim.

Aby zainstalować jeden z pakietów, używamy wartości z kolumny Nazwa, jak pokazano poniżej:

sudo snap install gimp

Plik

Podczas pobierania procent ukończenia rośnie, a pasek postępu przesuwa się po lewej stronie okna terminala. Po zakończeniu instalacji pojawi się komunikat (jak pokazano poniżej) informujący, że pakiet został zainstalowany.

ZA

Możesz użyć polecenia df, aby sprawdź pojemność i wykorzystanie różnych systemów plików skonfigurowanych na komputerze z systemem Linux. Jeśli wyprowadzimy jego wynik do polecenia grep i wyszukamy „gimp”, to my wyodrębnij wpis dotyczący pakietu właśnie zainstalowaliśmy.

Wpisujemy:

df | grep gimp

Plik

To pokazuje nam, że pakiet snap został zamontowany tak, jakby był systemem plików. Punkt montowania znajduje się w katalogu snap tutaj: / snap / gimp / 252. „252” to numer wydania tej wersji programu gimp.

System plików jest wymieniony jako: / dev / loop18. Pliki urządzeń pętlowych służą do udostępniania zwykłych plików jako urządzeń blokowych. Zwykle są używane do montowania systemów plików w obrazach dysków. W tym przypadku montują system plików SquashFS w pakiecie snap. „18” oznacza, że ​​jest to 18. plik urządzenia / dev / loop używany na tym komputerze z systemem Linux.

Możemy to szybko sprawdzić za pomocą polecenia df. Użyjemy opcji – t (typ), aby ograniczyć dane wyjściowe tylko do typów plików SquashFS.

Wpisujemy:

df -t squashfs

Plik

Wyświetlane są zamontowane systemy plików SquashFS. Plik urządzenia / dev / loop obsługuje każdy z nich, a jest ich 18.

Systemy plików SquashFS na liście w oknie terminala.

Każdy system plików jest podłączany do katalogu w katalogu / snap. Nie oznacza to jednak, że na tym komputerze jest zainstalowanych 18 różnych pakietów przystawek. To jest dystrybucja Ubuntu, więc niektóre pakiety przystawek są instalowane od razu po wyjęciu z pudełka, a właśnie zainstalowaliśmy kolejny.

Dodatkowo, gdy instalujesz snapd, instaluje on niektóre podstawowe pakiety snap, aby zaspokoić potrzeby innych pakietów snap.

Możemy użyć polecenia snap list, jak pokazano poniżej, aby wyświetlić listę zainstalowanych pakietów snap:

snap list

Lista przystawek w oknie terminala.

Wynik był trochę szeroki, więc koniec wykazu pokazano poniżej.

Koniec listy snapów w oknie terminala.

Oto cała lista:

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*   -

Jak widać, zainstalowanych jest 10 pakietów snap, a nie 18. Jednak te 10 pakietów dało początek 18 systemom plików SquashFS. Kolumny tabeli są dość oczywiste, ale oto kilka wyjaśnień:

Nazwa: nazwa pakietu przystawek, który został zainstalowany.
Wersja: numer wersji oprogramowania w pakiecie przystawki.
Wersja: numer wersji pakietu przystawek.
Śledzenie: kanał, na którym ten pakiet przystawki monitoruje aktualizacje. Są cztery:
Stabilny: kanał domyślny. Jak sama nazwa wskazuje, ten kanał zawiera najbardziej stabilne pakiety.
Kandydat: ten kanał jest mniej stabilny, ale bardzo do niego zbliżony, ponieważ zawiera oprogramowanie na poziomie kandydata do wydania, które jest kompletne w kodzie. Przechodzi końcowe testy, zanim zostanie przeniesiony do stabilnego kanału.
Beta: ten kanał jest w późnej fazie rozwoju, ale nie ma gwarancji, że będzie stabilny.
Edge: dla testerów wczesnych wersji. Nie powinieneś używać tego kanału do ważnej pracy lub na komputerze produkcyjnym. Oto smoki!

Wydawca: osoba, firma lub organizacja, która wydała pakiet przystawki. Jeśli był to zweryfikowany wydawca (a Twoje okno terminala obsługuje Unicode), obok nazwy wydawcy zobaczysz zielony znacznik wyboru. Jeśli nie może pokazać znacznika wyboru, zobaczysz gwiazdkę
.

Uwagi: Tutaj pojawią się wszelkie komentarze lub dodatkowe informacje.

Przyciąganie kanałów

Możesz użyć opcji info, aby uzyskać opis pakietu przystawki.

snap info gtk-common-themes

Aby to zrobić, wpisujemy:

Plik

Możemy zobaczyć, który kanał śledzi pakiet i wersję oprogramowania w pakietach snap w każdym z czterech kanałów. W większości przypadków powinieneś pozostać na stabilnym kanale.

Pakiet Snap sprawdza cztery razy dziennie, czy nowsza wersja oprogramowania jest dostępna na oglądanym lub „śledzącym” kanale. Jeśli chcesz zmienić kanał, który śledzi pakiet snap, możesz użyć opcji odświeżania i –kanał.

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

Aby to zrobić, wpisujemy:

Plik

Gdyby była dostępna nowsza wersja oprogramowania, zostałaby zainstalowana, ale tak nie było w tym przypadku. Jednak pakiet snap śledzi teraz kanał beta. Jak tylko nowa wersja beta zostanie wydana, jest automatycznie pobierana i aktualizowana.

Możesz użyć opcji –list, aby sprawdzić, czy są dostępne aktualizacje dla któregokolwiek z pakietów przystawek zainstalowanych na komputerze.

sudo snap refresh --list

Aby to zrobić, wpisujemy:

Plik

Zostaniesz poinformowany, czy którykolwiek z kanałów śledzonych przez pakiety snapów na twoim komputerze zawiera nowsze wersje oprogramowania.

sudo snap refresh gtk-common-themes

Jeśli dostępna jest nowsza wersja oprogramowania, możesz użyć opcji odświeżania, jak pokazano poniżej, aby ręcznie wymusić odświeżenie:

Plik

Usuwanie pakietu przystawki

sudo snap remove gimp

Aby odinstalować pakiet przystawki, możesz użyć opcji usuwania, jak pokazano poniżej:

Plik

Ściągawka przystawki

Używanie pakietów snap jest dość proste, ale stworzyliśmy listę niektórych poleceń, które pomogą Ci:
Aby wyszukać pakiet: snap znajdź nazwę_pakietu
Aby zainstalować pakiet: sudo snap install nazwa_pakietu
Aby zobaczyć wszystkie zainstalowane pakiety: lista przystawek
Aby uzyskać informacje o pojedynczym pakiecie: snap info nazwa_pakietu
Aby zmienić kanał, pakiet śledzi aktualizacje: sudo snap refresh nazwa_pakietu –channel = nazwa_kanału
Aby sprawdzić, czy aktualizacje są gotowe dla jakichkolwiek zainstalowanych pakietów: sudo snap refresh –list
Aby ręcznie zaktualizować pakiet: sudo snap refresh nazwa_pakietu

Aby odinstalować pakiet: sudo snap remove nazwa_pakietu