Πώς να εργαστείτε με πακέτα Snap στο Linux

Όταν εγκαθιστάτε πακέτα λογισμικού Linux με snap, μπορείτε να πείτε αντίο στην κόλαση της εξάρτησης και στη διάλυση άλλων εφαρμογών που λειτουργούν. Τα πακέτα Snap σχεδιάστηκαν αρχικά για το Ubuntu, αλλά τώρα είναι διαθέσιμα σε μια ποικιλία διανομών Linux.

Τι είναι τα πακέτα Snap;

Στο παρελθόν, η εγκατάσταση εφαρμογών στο Linux ήταν μια δυνητικά απογοητευτική εμπειρία. Θα εγκαθιστούσατε κάτι μόνο για να διαπιστώσετε ότι μια συγκεκριμένη βιβλιοθήκη ή άλλη εξάρτηση έλειπε ή ήταν ξεπερασμένη. Στη συνέχεια, θα αναζητούσατε τον πόρο που λείπει και θα τον εγκαταστήσετε, μόνο για να βρείτε μια άλλη εφαρμογή που εξαρτάται από την έκδοση της βιβλιοθήκης που μόλις αντικαταστήσατε. Διορθώστε ένα, σπάστε ένα, επαναλάβετε.

Αυτό έχει βελτιωθεί με καλύτερα συστήματα διαχείρισης πακέτων, όπως π.χ κατάλληλος, dnf, και pacman. Ωστόσο, εξακολουθείτε να αντιμετωπίζετε δυσκολίες εάν χρειάζεστε να εγκαταστήσετε διαφορετικές εκδόσεις της ίδιας εφαρμογής. Ή, εάν χρησιμοποιείτε δύο εφαρμογές που συγκρούονται επειδή συνδέονται με συγκεκριμένες —αλλά διαφορετικές— εκδόσεις μιας βιβλιοθήκης.

Μια λύση σε αυτά τα προβλήματα είναι τα συστήματα συσκευασίας και ανάπτυξης εφαρμογών. Ζωηρός είναι ένα από τα πιο δημοφιλή από αυτά. Βασίζεται σε ένα σύστημα συσκευασίας και ανάπτυξης που ονομάζεται Click, το οποίο έρχεται πίσω στο Ubuntu Touch πρωτοβουλία. AppImage και Επίπεδη συσκευασία είναι άλλοι που μπορεί να έχετε συναντήσει.

Αυτά τα συστήματα ενσωματώνουν την εφαρμογή μαζί με τυχόν εξαρτήσεις και άλλες απαιτήσεις σε ένα μόνο συμπιεσμένο αρχείο. Στη συνέχεια, η εφαρμογή εκτελείται σε ένα είδος μίνι κοντέινερ. Είναι sandbox και χωρίζεται από άλλες εφαρμογές. Οι βιβλιοθήκες και οι άλλοι πόροι με τις οποίες συσκευάζεται ή απαιτεί η εφαρμογή είναι διαθέσιμες μόνο σε αυτήν.

Δεν είναι εγκατεστημένα με την παραδοσιακή έννοια, επομένως δεν προκαλούν προβλήματα με άλλες εφαρμογές που απαιτούν διαφορετικές εκδόσεις των ίδιων πόρων. Μπορείτε ακόμη να εγκαταστήσετε και να εκτελέσετε εφαρμογές που χρειάζονται εκδόσεις βιβλιοθήκης σε διένεξη, επειδή κάθε εφαρμογή βρίσκεται στο δικό της sandbox.

Αν δεν έχουν εγκατασταθεί με τον συνηθισμένο τρόπο, όμως, πώς γίνεται; Λοιπόν, το μεμονωμένο αρχείο πακέτου γίνεται λήψη, αποσυμπίεση και προσάρτηση ως SquashFSεικονικό σύστημα αρχείων. Στη συνέχεια σας παρουσιάζεται ως εικονικό περιβάλλον. Όλα αυτά διαδραματίζονται στα παρασκήνια. Το μόνο που θα ξέρετε είναι ότι έχετε εγκαταστήσει μια εφαρμογή και, τώρα, έχετε πρόσβαση σε αυτήν.

Φυσικά, επειδή κάθε αρχείο πακέτου πρέπει να περιέχει κάθε πόρο που χρειάζεται η εφαρμογή, τα αρχεία πακέτου μπορεί να είναι μεγάλα. Είναι επίσης εύκολο να αντιγράψετε έναν πόρο που συνήθως θα εγκαθιστούσατε μόνο μία φορά, όπως π.χ MySQL ή Απάχης. Εάν δύο διαφορετικές εφαρμογές snap απαιτούν τους ίδιους πόρους, η καθεμία φέρει το δικό της αντίγραφο.

  Πώς να εγκαταστήσετε το πρόγραμμα περιήγησης Surf σε 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 Packages

Η εγκατάσταση ενός πακέτου snap είναι μια αρκετά απλή διαδικασία. Μπορείτε να χρησιμοποιήσετε το snap για να αναζητήσετε πακέτα snap και, στη συνέχεια, να εγκαταστήσετε αυτό που θέλετε.

Πληκτρολογούμε τα παρακάτω για αναζήτηση και εγκατάσταση το πρόγραμμα επεξεργασίας εικόνας gimp:

snap find gimp

ο

πραγματοποιεί γρήγορη αναζήτηση για αντιστοιχίσεις με το στοιχείο αναζήτησης “gimp” και επιστρέφει τα ευρήματά του. Θα βρει οτιδήποτε ταιριάζει ή αναφέρει τον όρο αναζήτησης.

Για να εγκαταστήσουμε ένα από τα πακέτα, χρησιμοποιούμε την τιμή από τη στήλη Όνομα, όπως φαίνεται παρακάτω:

sudo snap install gimp

ο

Καθώς γίνεται λήψη, το ποσοστό συμπληρωμένου ποσοστού αυξάνεται και μια γραμμή προόδου σέρνεται απέναντι από τα αριστερά του παραθύρου του τερματικού. Όταν ολοκληρωθεί η εγκατάσταση, εμφανίζεται ένα μήνυμα (όπως φαίνεται παρακάτω) που σας λέει ότι το πακέτο εγκαταστάθηκε.

ΕΝΑ

Μπορείτε να χρησιμοποιήσετε την εντολή df για να ελέγξτε τη χωρητικότητα και τη χρήση των διαφορετικών συστημάτων αρχείων που έχουν ρυθμιστεί στον υπολογιστή σας Linux. Αν διοχετεύσουμε την έξοδό του στην εντολή grep και αναζητήσουμε “gimp”, τότε απομονώστε την καταχώρηση για τη συσκευασία μόλις εγκαταστήσαμε.

Πληκτρολογούμε τα εξής:

df | grep gimp

ο

Αυτό μας δείχνει ότι το πακέτο snap είχε τοποθετηθεί σαν να ήταν ένα σύστημα αρχείων. Το σημείο προσάρτησης βρίσκεται στον κατάλογο snap εδώ: /snap/gimp/252. Το “252” είναι ο αριθμός έκδοσης αυτής της έκδοσης του gimp.

  Πώς να παίξετε το GreedFall στο Linux

Το σύστημα αρχείων παρατίθεται ως: /dev/loop18. Τα αρχεία συσκευής βρόχου χρησιμοποιούνται για να κάνουν τα κανονικά αρχεία προσβάσιμα ως μπλοκ συσκευές. Συνήθως χρησιμοποιούνται για την προσάρτηση των συστημάτων αρχείων σε εικόνες δίσκου. Σε αυτήν την περίπτωση, προσαρτούν το σύστημα αρχείων SquashFS μέσα στο πακέτο snap. Το “18” σημαίνει ότι αυτό είναι το 18ο αρχείο συσκευής /dev/loop που χρησιμοποιείται σε αυτόν τον υπολογιστή Linux.

Μπορούμε να χρησιμοποιήσουμε την εντολή df για να το ελέγξουμε γρήγορα. Θα χρησιμοποιήσουμε την επιλογή – t (type) για να περιορίσουμε την έξοδο μόνο σε τύπους αρχείων 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: Ο αριθμός αναθεώρησης του πακέτου snap.
Παρακολούθηση: Το κανάλι που παρακολουθεί αυτό το snap πακέτο για ενημερώσεις. Υπάρχουν τέσσερα:
Σταθερό: Το προεπιλεγμένο κανάλι. Όπως δηλώνει και το όνομά του, αυτό το κανάλι περιέχει τα πιο σταθερά πακέτα.
Υποψήφιος: Αυτό το κανάλι είναι λιγότερο σταθερό, αλλά πολύ κοντά του, επειδή περιέχει λογισμικό σε επίπεδο υποψηφίου έκδοσης, το οποίο είναι πλήρες κώδικα. Περνάει από την τελική δοκιμή πριν μεταφερθεί στο σταθερό κανάλι.
Beta: Αυτό το κανάλι έχει ποιότητα καθυστερημένου κύκλου ανάπτυξης, αλλά δεν είναι εγγυημένο ότι θα είναι σταθερό.
Edge: Για δοκιμαστές πρώιμης κατασκευής. Δεν πρέπει να χρησιμοποιείτε αυτό το κανάλι για σημαντικές εργασίες ή σε υπολογιστή παραγωγής. Να είναι δράκοι!

  Πώς να εκτελέσετε το Skyrim σε Linux με Wine

Εκδότης: Το άτομο, η εταιρεία ή ο οργανισμός που κυκλοφόρησε το snap πακέτο. Εάν ήταν επαληθευμένος εκδότης (και το παράθυρο του τερματικού σας υποστηρίζεται Unicode), θα δείτε ένα πράσινο σημάδι επιλογής δίπλα στο όνομα του εκδότη. Εάν δεν μπορεί να εμφανίσει ένα σημάδι επιλογής, θα δείτε έναν αστερίσκο
.

Σημειώσεις: Οποιαδήποτε σχόλια ή πρόσθετες πληροφορίες θα εμφανίζονται εδώ.

Τα snap Channels

Μπορείτε να χρησιμοποιήσετε την επιλογή πληροφοριών για να λάβετε μια περιγραφή ενός πακέτου snap.

snap info gtk-common-themes

Για να το κάνουμε αυτό, πληκτρολογούμε τα εξής:

ο

Μπορούμε να δούμε ποιο κανάλι παρακολουθεί το πακέτο και την έκδοση του λογισμικού στα πακέτα snap σε καθένα από τα τέσσερα κανάλια. Στις περισσότερες περιπτώσεις, θα πρέπει να παραμείνετε στο σταθερό κανάλι.

Ένα snap πακέτο ελέγχει τέσσερις φορές την ημέρα για να δει εάν μια νεότερη έκδοση του λογισμικού είναι διαθέσιμη από το κανάλι που παρακολουθεί ή “παρακολουθεί”. Εάν θέλετε να αλλάξετε το κανάλι που παρακολουθεί ένα snap πακέτο, μπορείτε να χρησιμοποιήσετε τις επιλογές ανανέωσης και καναλιού.

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

Για να το κάνουμε αυτό, πληκτρολογούμε τα εξής:

ο

Εάν ήταν διαθέσιμη μια νεότερη έκδοση του λογισμικού, θα εγκατασταθεί, αλλά αυτό δεν συνέβαινε εδώ. Ωστόσο, το πακέτο snap παρακολουθεί τώρα το κανάλι beta. Μόλις κυκλοφορήσει μια νέα έκδοση beta, γίνεται αυτόματα λήψη και αναβάθμιση.

Μπορείτε να χρησιμοποιήσετε την επιλογή –list για να ελέγξετε εάν υπάρχουν διαθέσιμες ενημερώσεις για οποιοδήποτε από τα πακέτα snap που είναι εγκατεστημένα στον υπολογιστή σας.

sudo snap refresh --list

Για να το κάνουμε αυτό, πληκτρολογούμε τα εξής:

ο

Θα ενημερωθείτε εάν κάποιο από τα κανάλια που παρακολουθούν τα πακέτα snap στον υπολογιστή σας περιέχει νεότερες εκδόσεις λογισμικού.

sudo snap refresh gtk-common-themes

Εάν είναι διαθέσιμη μια νεότερη έκδοση του λογισμικού, μπορείτε να χρησιμοποιήσετε την επιλογή ανανέωσης, όπως φαίνεται παρακάτω, για να επιβάλετε μη αυτόματα μια ανανέωση:

ο

Κατάργηση ενός snap πακέτου

sudo snap remove gimp

Για να απεγκαταστήσετε ένα πακέτο snap, μπορείτε να χρησιμοποιήσετε την επιλογή αφαίρεσης, όπως φαίνεται παρακάτω:

ο

Το snap Cheat Sheet

Η χρήση πακέτων snap είναι αρκετά απλή, αλλά έχουμε συγκεντρώσει μια λίστα με μερικές εντολές που θα σας βοηθήσουν:
Για να αναζητήσετε ένα πακέτο: snap find package_name
Για να εγκαταστήσετε ένα πακέτο: sudo snap install package_name
Για να δείτε όλα τα εγκατεστημένα πακέτα: 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 αφαιρέστε το όνομα_πακέτου