Όταν εγκαθιστάτε πακέτα λογισμικού Linux με snap, μπορείτε να πείτε αντίο στην κόλαση της εξάρτησης και στη διάλυση άλλων εφαρμογών που λειτουργούν. Τα πακέτα Snap σχεδιάστηκαν αρχικά για το Ubuntu, αλλά τώρα είναι διαθέσιμα σε μια ποικιλία διανομών Linux.
Πίνακας περιεχομένων
Τι είναι τα πακέτα Snap;
Στο παρελθόν, η εγκατάσταση εφαρμογών στο Linux ήταν μια δυνητικά απογοητευτική εμπειρία. Θα εγκαθιστούσατε κάτι μόνο για να διαπιστώσετε ότι μια συγκεκριμένη βιβλιοθήκη ή άλλη εξάρτηση έλειπε ή ήταν ξεπερασμένη. Στη συνέχεια, θα αναζητούσατε τον πόρο που λείπει και θα τον εγκαταστήσετε, μόνο για να βρείτε μια άλλη εφαρμογή που εξαρτάται από την έκδοση της βιβλιοθήκης που μόλις αντικαταστήσατε. Διορθώστε ένα, σπάστε ένα, επαναλάβετε.
Αυτό έχει βελτιωθεί με καλύτερα συστήματα διαχείρισης πακέτων, όπως π.χ κατάλληλος, dnf, και pacman. Ωστόσο, εξακολουθείτε να αντιμετωπίζετε δυσκολίες εάν χρειάζεστε να εγκαταστήσετε διαφορετικές εκδόσεις της ίδιας εφαρμογής. Ή, εάν χρησιμοποιείτε δύο εφαρμογές που συγκρούονται επειδή συνδέονται με συγκεκριμένες —αλλά διαφορετικές— εκδόσεις μιας βιβλιοθήκης.
Μια λύση σε αυτά τα προβλήματα είναι τα συστήματα συσκευασίας και ανάπτυξης εφαρμογών. Ζωηρός είναι ένα από τα πιο δημοφιλή από αυτά. Βασίζεται σε ένα σύστημα συσκευασίας και ανάπτυξης που ονομάζεται Click, το οποίο έρχεται πίσω στο Ubuntu Touch πρωτοβουλία. AppImage και Επίπεδη συσκευασία είναι άλλοι που μπορεί να έχετε συναντήσει.
Αυτά τα συστήματα ενσωματώνουν την εφαρμογή μαζί με τυχόν εξαρτήσεις και άλλες απαιτήσεις σε ένα μόνο συμπιεσμένο αρχείο. Στη συνέχεια, η εφαρμογή εκτελείται σε ένα είδος μίνι κοντέινερ. Είναι sandbox και χωρίζεται από άλλες εφαρμογές. Οι βιβλιοθήκες και οι άλλοι πόροι με τις οποίες συσκευάζεται ή απαιτεί η εφαρμογή είναι διαθέσιμες μόνο σε αυτήν.
Δεν είναι εγκατεστημένα με την παραδοσιακή έννοια, επομένως δεν προκαλούν προβλήματα με άλλες εφαρμογές που απαιτούν διαφορετικές εκδόσεις των ίδιων πόρων. Μπορείτε ακόμη να εγκαταστήσετε και να εκτελέσετε εφαρμογές που χρειάζονται εκδόσεις βιβλιοθήκης σε διένεξη, επειδή κάθε εφαρμογή βρίσκεται στο δικό της sandbox.
Αν δεν έχουν εγκατασταθεί με τον συνηθισμένο τρόπο, όμως, πώς γίνεται; Λοιπόν, το μεμονωμένο αρχείο πακέτου γίνεται λήψη, αποσυμπίεση και προσάρτηση ως SquashFSεικονικό σύστημα αρχείων. Στη συνέχεια σας παρουσιάζεται ως εικονικό περιβάλλον. Όλα αυτά διαδραματίζονται στα παρασκήνια. Το μόνο που θα ξέρετε είναι ότι έχετε εγκαταστήσει μια εφαρμογή και, τώρα, έχετε πρόσβαση σε αυτήν.
Φυσικά, επειδή κάθε αρχείο πακέτου πρέπει να περιέχει κάθε πόρο που χρειάζεται η εφαρμογή, τα αρχεία πακέτου μπορεί να είναι μεγάλα. Είναι επίσης εύκολο να αντιγράψετε έναν πόρο που συνήθως θα εγκαθιστούσατε μόνο μία φορά, όπως π.χ MySQL ή Απάχης. Εάν δύο διαφορετικές εφαρμογές snap απαιτούν τους ίδιους πόρους, η καθεμία φέρει το δικό της αντίγραφο.
Ωστόσο, αυτή είναι η αντιστάθμιση για την απλότητα της εγκατάστασης και την αφαίρεση των πονοκεφάλων σύγκρουσης πόρων.
Εγκατάσταση 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.
Το σύστημα αρχείων παρατίθεται ως: /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: Για δοκιμαστές πρώιμης κατασκευής. Δεν πρέπει να χρησιμοποιείτε αυτό το κανάλι για σημαντικές εργασίες ή σε υπολογιστή παραγωγής. Να είναι δράκοι!
Εκδότης: Το άτομο, η εταιρεία ή ο οργανισμός που κυκλοφόρησε το 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 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 αφαιρέστε το όνομα_πακέτου