Werken met Snap-pakketten op Linux

Het pictogram Snap-pakketten.
Ubuntu

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

Het "sudo dnf install snapd" commando in een terminalvenster.

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

De opdracht "snap version" in een terminalvenster.

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

De "snap find gimp" in een terminalvenster.

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

Het "sudo snap install gimp" -commando in een terminalvenster.

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.

Een "gimp 2.10.18 van Snapcrafters geïnstalleerd" bericht in een terminalvenster.

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

Het "df | grep gimp" commando in een terminalvenster.

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

Het "df -t squashfs" commando in een terminalvenster.

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

SquashFS-bestandssystemen vermeld in een terminalvenster.

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

Een snaplijst in een terminalvenster.

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

Het einde van de uitvoer van de snaplijst in een terminalvenster.

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 snap pakket dat is geïnstalleerd.
  • Versie: Het versienummer van de software in het snap pakket.
  • Rev: Het revisienummer van het snap pakket.
  • Volgen: Het kanaal dit snap pakketmonitors 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 snap pakket. 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

Het "snap info gtk-common-themes" commando in een terminalvenster.

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

De opdracht "sudo snap refresh gtk-common-themes --channel = beta" in een terminalvenster.

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

Het "sudo snap refresh --list" commando in een terminalvenster.

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

Het "sudo snap refresh gtk-common-themes" commando in een terminalvenster.

Een snap-pakket verwijderen

Om een snap pakket, kunt u de verwijderoptie gebruiken, zoals hieronder weergegeven:

sudo snap remove gimp

Het "sudo snap remove gimp" commando in een terminalvenster.

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

Nieuwste artikelen

Gerelateerde artikelen