
Wanneer u Linux-softwarepakketten installeert met snap, kunt u afscheid nemen van de hel van afhankelijkheid en andere werkende applicaties breken. Snap-pakketten zijn oorspronkelijk ontworpen voor Ubuntu, maar ze zijn nu beschikbaar op verschillende Linux-distributies.
Wat zijn Snap-pakketten?
In het verleden was het installeren van applicaties op Linux een potentieel frustrerende ervaring. U zou alleen iets installeren om te ontdekken dat een bepaalde bibliotheek of een andere afhankelijkheid ontbrak of verouderd was. Je zou dan de ontbrekende bron opsporen en deze installeren, alleen om te ontdekken dat een andere toepassing afhankelijk was van de versie van de bibliotheek die je zojuist hebt vervangen. Eén repareren, één breken, herhalen.
Dit is verbeterd met betere pakketbeheersystemen, zoals apt, dnf en pacman. Je hebt echter nog steeds problemen als je verschillende versies van dezelfde applicatie moet installeren. Of, als u twee applicaties gebruikt die botsen omdat ze zijn gekoppeld aan specifieke, maar verschillende versies van een bibliotheek.
Een oplossing voor deze problemen is het inpakken en inzetten van applicaties. Snappy is een van de meest populaire hiervan. Het is gebaseerd op een verpakkings- en implementatiesysteem genaamd Click, dat teruggrijpt naar het Ubuntu Touch-initiatief. AppImage en FlatPack zijn andere die u mogelijk bent tegengekomen.
Deze systemen kapselen de applicatie samen met eventuele afhankelijkheden en andere vereisten in één gecomprimeerd bestand in. De applicatie draait dan in een soort mini-container. Het is sandboxed en gescheiden van andere applicaties. De bibliotheken en andere bronnen waarmee de toepassing is verpakt of die deze nodig heeft, zijn alleen voor de toepassing beschikbaar.
Ze worden niet in de traditionele zin geïnstalleerd, dus ze veroorzaken geen problemen met andere applicaties die verschillende versies van dezelfde bronnen nodig hebben. U kunt zelfs applicaties installeren en uitvoeren die conflicterende bibliotheekversies nodig hebben, omdat elke applicatie zich in zijn eigen sandbox bevindt.
Als ze echter niet op de gebruikelijke manier zijn geïnstalleerd, hoe worden ze dan behandeld? Welnu, het enkele pakketbestand wordt gedownload, gedecomprimeerd en aangekoppeld als een SquashFSvirtueel bestandssysteem. Het wordt vervolgens aan u gepresenteerd als een virtuele omgeving. Dit alles speelt zich af achter de schermen. Het enige dat u weet, is dat u een applicatie heeft geïnstalleerd en dat u er nu toegang toe hebt.
Omdat elk pakketbestand alle bronnen moet bevatten die de toepassing nodig heeft, kunnen de pakketbestanden natuurlijk groot zijn. Het is ook gemakkelijk om een ​​bron te dupliceren die u normaal maar één keer zou installeren, zoals MySQL of Apache. Als twee verschillende snap applicaties vereisen dezelfde middelen, ze brengen elk hun eigen exemplaar mee.
Dit is echter de afweging voor de eenvoud van de installatie en het wegnemen van de bronconflicten.
Snapd
Snappy werd geïntroduceerd met Ubuntu 16.04, dus als je die versie of later gebruikt, ben je al klaar om te gaan. Op onze machine was Snappy geïnstalleerd op Manjaro 18.04, maar we moesten het installeren op Fedora 31.
snap is zowel de naam van de pakketbestanden als de opdracht die u gebruikt om ermee te communiceren. Achter de schermen is het snapd daemon is ook de naam van het pakket dat u moet installeren als Snappy nog niet op uw computer staat.
Installeren snapd typ in Fedora het volgende commando:
sudo dnf install snapd

Gebruik deze commando’s als je het op Manjaro moet installeren:
sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket
U kunt de snap version commando om de versie van het snap cliënt, snapd daemon en het serienummer van de software. De naam en release van je Linux-distributie en de kernelversie worden ook voor je weergegeven.
Typ het volgende:
snap version

Snap-pakketten installeren
Het is een vrij eenvoudig proces om een snap pakket. Je kunt gebruiken snap Zoeken naar snap pakketten en installeer vervolgens het gewenste pakket.
We typen het volgende om de gimp-afbeeldingseditor te zoeken en te installeren:
snap find gimp

snap zoekt naar overeenkomsten met de zoekaanwijzing “gimp” en retourneert zijn bevindingen. Het vindt alles dat overeenkomt met of vermeldt de zoekterm.
Om een ​​van de pakketten te installeren, gebruiken we de waarde van de Name kolom, zoals hieronder weergegeven:
sudo snap install gimp

Terwijl het wordt gedownload, stijgt het percentage voltooide cijfer en kruipt een voortgangsbalk vanaf de linkerkant van het terminalvenster. Wanneer de installatie is voltooid, verschijnt een bericht (zoals hieronder weergegeven) dat het pakket is geïnstalleerd.

U kunt de df opdracht om de capaciteit en het gebruik van de verschillende bestandssystemen die op uw Linux-computer zijn geconfigureerd, te controleren. Als we zijn output naar het grep commando en zoeken naar “gimp”, isoleren we het item voor het pakket dat we zojuist hebben geïnstalleerd.
We typen het volgende:
df | grep gimp

Dit laat ons zien dat het snap-pakket was gemount alsof het een bestandssysteem was. Het koppelpunt bevindt zich in het snap directory hier: /snap/gimp/252. De “252” is het releasenummer van deze versie van gimp.
VERWANT: Hoe de grep-opdracht op Linux te gebruiken
Het bestandssysteem wordt weergegeven als: /dev/loop18. Loop-apparaatbestanden worden gebruikt om gewone bestanden toegankelijk te maken als blokapparaten. Ze worden meestal gebruikt voor het mounten van de bestandssystemen in schijfkopieën. In dit geval monteren ze de SquashFS bestandssysteem binnen het snap pakket. De “18” betekent dat dit de 18e is /dev/loop device-bestand dat op deze Linux-computer wordt gebruikt.
We kunnen de df commando om dit snel te controleren. We gebruiken de – t (type) optie om de uitvoer te beperken tot SquashFS alleen bestandstypen.
We typen het volgende:
df -t squashfs

De gemonteerd SquashFS bestandssystemen worden vermeld. EEN /dev/loop device-bestand verwerkt ze allemaal, en er zijn er 18.

Elk bestandssysteem is aangekoppeld in een map binnen het /snap directory. Dit betekent echter niet dat er 18 verschillende zijn snap pakketten die op deze computer zijn geïnstalleerd. Dit is een Ubuntu-distributie, dus sommige snap pakketten worden direct uit de doos geïnstalleerd en we hebben zojuist een andere geïnstalleerd.
Bovendien, wanneer u snapd, installeert het een kern snap pakketten om aan de behoeften van anderen te voldoen snap pakketjes.
We kunnen de snap list commando, zoals hieronder getoond, om de geïnstalleerde snap pakketjes:
snap list

De output was een beetje breed, dus het einde van de lijst wordt hieronder weergegeven.

Hier is de volledige lijst:
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* -
Zoals u kunt zien, zijn er 10 snap-pakketten geïnstalleerd, niet 18. Deze 10 pakketten hebben echter aanleiding gegeven tot de 18 SquashFS bestandssystemen. De tabelkolommen spreken voor zich, maar hier is wat verduidelijking:
-
Naam: De naam van de
snappakket dat is geïnstalleerd. -
Versie: Het versienummer van de software in het
snappakket. -
Rev: Het revisienummer van het
snappakket. -
Volgen: Het kanaal dit
snappakketmonitors voor updates. Er zijn er vier:- Stal: Het standaardkanaal. Zoals de naam al aangeeft, bevat dit kanaal de meest stabiele pakketten.
- Kandidaat: Dit kanaal is minder stabiel, maar komt er heel dichtbij omdat het software op het niveau van de kandidaat-release bevat, die code-compleet is. Het doorloopt de laatste tests voordat het naar het stabiele kanaal wordt verplaatst.
- Bèta: Dit kanaal heeft een late ontwikkelingscycluskwaliteit, maar is niet gegarandeerd stabiel.
- Rand: Voor vroege testers. Gebruik dit kanaal niet voor belangrijk werk of op een productiecomputer. Hier zijn draken!
-
Uitgever: De persoon, het bedrijf of de organisatie die het
snappakket. Als het een geverifieerde uitgever was (en uw terminalvenster Unicode ondersteunt), ziet u een groen vinkje naast de naam van de uitgever. Als er geen vinkje kan worden weergegeven, ziet u een asterisk (*). - Opmerkingen: Eventuele opmerkingen of aanvullende informatie worden hier weergegeven.
De snapkanalen
U kunt de info optie om een ​​beschrijving te krijgen van een snap pakket.
Om dit te doen, typen we het volgende:
snap info gtk-common-themes

We kunnen zien welk kanaal het pakket volgt, en de versie van de software in het snap pakketten in elk van de vier kanalen. In de meeste gevallen moet u op het stabiele kanaal blijven.
EEN snap pakket controleert vier keer per dag of er een nieuwere versie van de software beschikbaar is van het kanaal dat het bekijkt of ‘volgt’. Als u het kanaal wilt wijzigen a snap pakket tracks, kunt u de refresh en --channel opties.
Om dit te doen, typen we het volgende:
sudo snap refresh gtk-common-themes --channel=beta

Als er een nieuwere versie van de software beschikbaar was, zou deze worden geïnstalleerd, maar dat was hier niet het geval. echter, de snap pakket volgt nu het bètakanaal. Zodra er een nieuwe bètaversie is uitgebracht, wordt deze automatisch gedownload en geüpgraded.
U kunt de --list optie om te controleren of updates beschikbaar zijn voor een van de snap pakketten die op uw computer zijn geïnstalleerd.
Om dit te doen, typen we het volgende:
sudo snap refresh --list

U wordt verteld of een van de kanalen het snap pakketten die op uw computer worden bijgehouden, bevatten nieuwere softwareversies.
Als er een nieuwere versie van de software beschikbaar is, kunt u de refresh optie, zoals hieronder weergegeven, om handmatig vernieuwen te forceren:
sudo snap refresh gtk-common-themes

Een snap-pakket verwijderen
Om een snap pakket, kunt u de verwijderoptie gebruiken, zoals hieronder weergegeven:
sudo snap remove gimp

De snelle Cheat Sheet
Het gebruik van snap-pakketten is vrij eenvoudig, maar we hebben een lijst samengesteld met enkele opdrachten die u zullen helpen:
-
Om een ​​pakket te zoeken:
snap find package_name -
Om een ​​pakket te installeren:
sudo snap install package_name -
Om alle geïnstalleerde pakketten te zien:
snap list -
Om informatie over een enkel pakket te krijgen:
snap info package_name -
Om het kanaal te wijzigen dat een pakket volgt voor updates:
sudo snap refresh package_name --channel=channel_name -
Om te zien of updates klaar zijn voor geïnstalleerde pakketten:
sudo snap refresh --list -
Om een ​​pakket handmatig bij te werken:
sudo snap refresh package_name -
Om een ​​pakket te verwijderen:
sudo snap remove package_name