Πώς να δημιουργήσετε ένα πακέτο Snap βήμα προς βήμα

Τελευταία ενημέρωση: 04/12/2025
Συγγραφέας: Ισαάκ
  • Το Snap σάς επιτρέπει να συσκευάζετε εφαρμογές με όλες τις εξαρτήσεις τους σε μεμονωμένα κοντέινερ, καθιστώντας τες εύκολες στη χρήση σε πολλαπλές διανομές. Linux.
  • Το Snapcraft είναι το επίσημο εργαλείο για την περιγραφή, τη δημιουργία και τη δημοσίευση πακέτων Snap χρησιμοποιώντας το αρχείο διαμόρφωσης snapcraft.yaml.
  • Οι αυστηροί περιορισμοί και οι διεπαφές plug-in ελέγχουν την ασφάλεια και τα δικαιώματα κάθε Snap, εξισορροπώντας την απομόνωση και τη λειτουργικότητα.
  • Η δημοσίευση στο Snap Store απλοποιεί τη διανομή και την αυτόματη ενημέρωση εφαρμογών όπως τα έργα Nextcloud ή Electron.

Οδηγός βήμα προς βήμα για τη δημιουργία ενός πακέτου Snap

Αν αναπτύσσετε εφαρμογές σε Linux, αργά ή γρήγορα θα αντιμετωπίσετε τον ίδιο πονοκέφαλο: Πώς να συσκευάσετε και να διανείμετε το λογισμικό σας με απλό, ασφαλή και ενημερωμένο τρόπο χωρίς να χρειάζεται να αντιμετωπίσετε τις εξαρτήσεις κάθε διανομής. Εδώ έρχεται το Snap, η μορφή πακέτου της Canonical που υιοθετείται όλο και περισσότερο από περιβάλλοντα επιτραπέζιων υπολογιστών και διακομιστών.

Σε αυτόν τον οδηγό θα δείτε Πώς να δημιουργήσετε ένα πακέτο Snap βήμα προς βήμα, να το δοκιμάσετε στον υπολογιστή σας, ακόμη και να το δημοσιεύσετε στο Snap StoreΘα εξηγήσουμε όμως επίσης τι ακριβώς είναι το Snap, ποιος είναι ο ρόλος του snapd, τα πλεονεκτήματα και τα μειονεκτήματά του, καθώς και πότε είναι καταλληλότερο για χρήση (για παράδειγμα, με εφαρμογές όπως το Nextcloud ή τα έργα Electron). Στόχος είναι να ολοκληρώσετε αυτό το άρθρο, να είστε σε θέση να συσκευάσετε τη δική σας εφαρμογή με ασφάλεια και να γνωρίζετε αν αυτή η μορφή είναι κατάλληλη για εσάς.

Τι είναι το Snap και γιατί έχει γίνει τόσο δημοφιλές

Το Snap είναι μια καθολική μορφή πακέτου για LinuxΔημιουργημένα από την Canonical (την εταιρεία πίσω από το Ubuntu), τα πακέτα Snap έχουν μια πολύ σαφή ιδέα: να διασφαλίσουν ότι το ίδιο πακέτο λειτουργεί με τον ίδιο τρόπο σε διαφορετικές διανομές χωρίς να απαιτούνται τροποποιήσεις στο βασικό σύστημα. Για να επιτευχθεί αυτό, κάθε πακέτο Snap περιλαμβάνει την εφαρμογή και σχεδόν όλες τις εξαρτήσεις της μέσα σε ένα αυτόνομο κοντέινερ.

Αντί να βασίζεστε σε βιβλιοθήκες συστήματος όπως κάνουν τα παραδοσιακά πακέτα (deb, rpm, κ.λπ.)Τα Snap φέρουν το "σακίδιο" τους με όλα τα απαραίτητα. Αυτό μειώνει άμεσα πολλά τυπικά προβλήματα: ασύμβατες εκδόσεις βιβλιοθηκών, προβληματικές εξαρτήσεις ή διενέξεις με άλλα εγκατεστημένα πακέτα.

Όλη αυτή η ρύθμιση διαχειρίζεται από snapd, ο δαίμονας που είναι υπεύθυνος για την εγκατάσταση, την ενημέρωση και την εκτέλεση των SnapsΤο snapd εκτελείται στο παρασκήνιο, ελέγχει τα δικαιώματα, επιβάλλει το sandboxing ασφαλείας, προγραμματίζει αυτόματες ενημερώσεις και διατηρεί το σύστημά σας ενημερωμένο με ελάχιστη προσπάθεια από μέρους σας.

Χάρη σε αυτήν την προσέγγιση, το ίδιο πακέτο Snap μπορεί να εγκατασταθεί χωρίς αλλαγές στο Ubuntu, Debian, Fedora, Arch Linux, Linux Mint και πολλές άλλες διανομές που υποστηρίζουν το snapd. Από την οπτική γωνία ενός προγραμματιστή, είναι ένας βολικός τρόπος για να προσεγγίσει πολύ περισσότερους χρήστες με μία μόνο μορφή διανομής.

Πλεονεκτήματα και μειονεκτήματα του Snap σε σύγκριση με άλλες μορφές

Πριν προχωρήσουμε στην πρακτική πλευρά, αξίζει να διευκρινίσουμε Τι προσφέρει το Snap και ποια μειονεκτήματα έχει; σε σύγκριση με τις παραδοσιακές συσκευασίες ή εναλλακτικές λύσεις όπως το Flatpak ή το AppImage.

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

Ένα άλλο βασικό πλεονέκτημα είναι ότι Κάθε Snap εκτελείται σε ένα απομονωμένο περιβάλλον (sandbox)Αυτή η απομόνωση μειώνει τις επιπτώσεις μιας παραβίασης ασφαλείας, εμποδίζει την εφαρμογή να έχει πρόσβαση σε αρχεία συστήματος κάτι που δεν θα έπρεπε και περιορίζει τις διενέξεις με άλλες εφαρμογές. εφαρμογέςΜέσω διεπαφών και «πρίζες» Μπορείτε σταδιακά να παραχωρήσετε ελεγχόμενη πρόσβαση στο δίκτυο, τον ήχο, την κάμερα, τον αρχικό κατάλογο κ.λπ., ακολουθώντας την αρχή των ελαχίστων προνομίων.

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

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

Ένα άλλο σημείο διαφωνίας για ορισμένα μέλη της κοινότητας είναι ότι Το Snap Store είναι κεντρικά τοποθετημένο και ελέγχεται από την Canonical.Παρόλο που η μορφή είναι ανοιχτή, το κύριο αποθετήριο διαχειρίζεται από μία μόνο εταιρεία, κάτι που έρχεται σε αντίθεση με την πιο κατανεμημένη φιλοσοφία του Linux και έρχεται σε αντίθεση με το οικοσύστημα Flatpak (Flathub) ή την προσέγγιση χωρίς αποθηκευτικό χώρο του AppImage.

  Μέθοδοι διακοπής των αγορών εντός εφαρμογής της Amazon στο Kindle Hearth

Εγκατάσταση και ενεργοποίηση του Snap σε κύριες διανομές Linux

Για να δημιουργήσετε και να χρησιμοποιήσετε πακέτα Snap, πρέπει να έχετε Το snapd έχει εγκατασταθεί σωστά και λειτουργεί. στο σύστημά σας. Η διαδικασία ποικίλλει ελαφρώς ανάλογα με την διανομή, αλλά είναι αρκετά απλή σε όλες.

En Ubuntu και σύγχρονα παράγωγα (από την έκδοση 16.04 και μετά) Το snapd είναι προεγκατεστημένο. Μπορείτε να το ελέγξετε με:

snap version

Αν για κάποιο λόγο δεν υπάρχει, μπορείτε να το εγκαταστήσετε με το APT εκτελώντας μια ενημέρωση και στη συνέχεια η εγκατάσταση του snapd:

sudo apt update
sudo apt install snapd

En Debian ή Linux Mint Ενδέχεται να βρείτε ένα αρχείο προτιμήσεων που μπλοκάρει τα πακέτα Snap. Σε αυτήν την περίπτωση, το πρώτο βήμα είναι καταργήστε τον κανόνα που τα απαγορεύει:

sudo rm /etc/apt/preferences.d/nosnap.pref

Στη συνέχεια, ενημερώνετε και εγκαθιστάτε το snapd με τον ίδιο τρόπο:

sudo apt update
sudo apt install snapd

Στον κόσμο του Μαλακό καπέλλοΗ υποστήριξη Snap δεν είναι πλήρως ενσωματωμένη αμέσως, αλλά μπορείτε να την ενεργοποιήσετε χωρίς ιδιαίτερο πρόβλημα. Αρχικά, εγκαθιστάτε το snapd, συνήθως από τα τυπικά αποθετήρια ή από το EPEL ανάλογα με την έκδοση, και στη συνέχεια Ενεργοποιείτε την υποδοχή έτσι ώστε η υπηρεσία εκκίνηση:

sudo dnf install snapd
sudo systemctl enable --now snapd.socket

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

sudo ln -s /var/lib/snapd/snap /snap

En Arch LinuxΤο snapd είναι διαθέσιμο στα επίσημα αποθετήρια. Το εγκαθιστάτε με το pacman και, ξανά, ενεργοποιείτε την υπηρεσία μέσω του socket:

sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

Μόλις ξεκινήσετε και λειτουργήσετε, μπορείτε Εγκατάσταση, καταχώριση, ενημέρωση και διαγραφή Snaps με τη εντολές βασικά: snap install, snap list, snap refresh, snap remove y snap find για να αναζητήσετε διαθέσιμες εφαρμογές στο Snap Store. (βλ. Πώς να καταχωρίσετε τα πακέτα που είναι εγκατεστημένα στο Ubuntu)

Πώς να συσκευάσετε μια εφαρμογή στο Snap βήμα προς βήμα

Ας δούμε το κομμάτι που συνήθως ενδιαφέρει περισσότερο τους ανθρώπους: Συσκευάστε τη δική σας εφαρμογή σε μορφή SnapΗ γενική διαδικασία είναι η προετοιμασία της εφαρμογής σας, η εγκατάσταση του Snapcraft και ο ορισμός ενός αρχείου. snapcraft.yamlΡυθμίστε τις παραμέτρους του περιορισμού και, τέλος, δημιουργήστε και δοκιμάστε το πακέτο.

Για να ακολουθήσετε αυτήν τη διαδικασία, είναι πολύ βολικό να έχετε έναν διακομιστή ή υπολογιστή με Ubuntu 18.04 ή νεότερη έκδοση (ή μια συμβατή διανομή), με έναν λογαριασμό χρήστη που έχει δικαιώματα sudo και, αν θέλετε να δημοσιεύσετε το Snap σας, με έναν λογαριασμό στον πίνακα ελέγχου προγραμματιστών του Snapcraft. Αν δεν έχετε ακόμα εφαρμογή, μπορείτε να χρησιμοποιήσετε ένα απλό "Hello World" στο Go ως παράδειγμα.

Το πρώτο πράγμα είναι να δημιουργήσουμε έναν συγκεκριμένο κατάλογο εργασίας για το Snap σας και τοποθετήστε τον εαυτό σας μέσα σε:

mkdir ~/tu-snap
cd ~/tu-snap

Αν έχετε ήδη πηγαίο κώδικα για το έργο σας, αντιγράψτε τα πάντα σε αυτόν τον κατάλογο. Αν βρίσκεται στο Git, μπορείτε να αρχικοποιήσετε ένα αποθετήριο και να κλωνοποιήσετε ή να εισαγάγετε τα απαραίτητα αρχεία εκεί. Η ιδέα είναι ότι Όλα όσα χρειάζεται η εφαρμογή σας είναι συγκεντρωμένα σε έναν μόνο φάκελοεπειδή θα είναι το σημείο εκκίνησης για τη συσκευασία.

Αν θέλετε ένα ελάχιστο παράδειγμα, μπορείτε να δημιουργήσετε ένα μικρό πρόγραμμα στο Go με ένα αρχείο που ονομάζεται helloworld.go εκτυπώστε ένα μήνυμα στην οθόνη. Εγκαταστήστε το Go with APT αν δεν το έχετε ήδη και, στη συνέχεια, εκτελέστε το go run helloworld.go για να διασφαλίσετε ότι η βασική εφαρμογή λειτουργεί σωστά πριν τη μετατρέψετε σε Snap.

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

Εγκαταστήστε και κατανοήστε το Snapcraft, το εργαλείο για τη δημιουργία Snaps

Το Snapcraft είναι το επίσημο κιτ της Canonical για προγραμματιστές. ορισμός, δημιουργία και δημοσίευση πακέτων Snap χωρίς να χρειάζεται να επανεφεύρουμε τον τροχό. Εγκαθίσταται ως Snap και εκτελείται σε κλασική λειτουργία για να έχει τα απαραίτητα δικαιώματα κατά τη μεταγλώττιση.

Για να το εγκαταστήσετε σε ένα λειτουργικό σύστημα με snapdΑπλώς ξεκινήστε:

sudo snap install snapcraft --classic

η επιλογή –classic απενεργοποιεί το αυστηρό lockdown Για το Snapcraft, αυτό είναι απαραίτητο επειδή κατά τη διάρκεια της διαδικασίας συσκευασίας πρέπει να έχει πρόσβαση στο σύστημα, να εκκινεί builds, να διαχειρίζεται εξαρτήσεις και να εργάζεται με αρχεία εκτός του δικού του περιβάλλοντος.

Μόλις εγκατασταθεί, θα δείτε ένα μήνυμα που υποδεικνύει την έκδοση που έχει προστεθεί στο σύστημα, κάτι σαν αυτό: «Το Snapcraft XXX από την Canonical είναι εγκατεστημένο»Μπορείτε να επιβεβαιώσετε ότι όλα είναι σωστά εκτελώντας:

snapcraft --version

Από αυτή τη στιγμή και μετά, η εντολή snapcraft Είναι διαθέσιμο στο κέλυφος σας και μπορείτε να το χρησιμοποιήσετε μέσα στον κατάλογο του έργου σας για να Δημιουργήστε το πρώτο σας πακέτο SnapΑλλά πρώτα, η διαμόρφωσή του πρέπει να οριστεί χρησιμοποιώντας ένα συγκεκριμένο αρχείο YAML.

  Συμβουλές για την απόκρυψη μηνυμάτων κειμένου στο iPhone

Ορίστε όνομα, μεταδεδομένα, εφαρμογές και μέρη στο snapcraft.yaml

Η καρδιά κάθε Snap είναι το αρχείο snapcraft.yaml, όπου περιγράφετε τι κάνει η εφαρμογή, πώς είναι κατασκευασμένη, ποια εντολή εκτίθεται στον χρήστη, ποια πρόσθετα (plugins) χρησιμοποιούνται, ποια μέρη περιλαμβάνει και ποια δικαιώματα χρειάζεται.

Ξεκινήστε βεβαιώνοντας ότι βρίσκεστε ακόμα στο ριζικό κατάλογο από το έργο σας (αυτό που δημιουργήσατε ως φάκελο Snap) και δημιουργήστε το αρχείο διαμόρφωσης με τον αγαπημένο σας επεξεργαστή:

cd ~/tu-snap
nano snapcraft.yaml

Αρχικά, ορίστε το Βασικά μεταδεδομένα: όνομα, σύνοψη, περιγραφή και έκδοσηΈνα παράδειγμα θα μπορούσε να είναι:

name: helloworld
summary: Pequeña aplicación de ejemplo empaquetada como Snap.
description: |
Programa Hello World escrito en Go y distribuido como paquete Snap
usando la herramienta Snapcraft para ilustrar el proceso paso a paso.
version: '1.0'

Το όνομα πρέπει να είναι Αυτό απαιτείται μόνο εάν πρόκειται να δημοσιεύσετε στο Snap Store.Επομένως, είναι καλή ιδέα να ελέγξετε ότι δεν έχει ήδη χρησιμοποιηθεί. Η σύνοψη έχει όριο χαρακτήρων και η περιγραφή μπορεί να είναι πολλαπλών γραμμών χρησιμοποιώντας το σύμβολο . | όπως στο παράδειγμα.

Τότε είναι η ώρα της μαρτυρίας. Οι "εφαρμογές" του SnapΔηλαδή, οι εντολές που μπορεί να εκτελέσει ο χρήστης από το τερματικό Για να εκκινήσετε την εφαρμογή σας, προσθέστε μια ενότητα μέσα στο αρχείο. apps: και ορίστε τουλάχιστον μία καταχώρηση:

apps:
helloworld:
command: helloworld

Εδώ, Το «helloworld» είναι και το λογικό όνομα της εφαρμογής και η εντολή που θα εκτελεστείΑυτή η εντολή πρέπει να αντιστοιχεί στο δυαδικό ή γραφή που δημιουργεί η διαδικασία μεταγλώττισης. Στην περίπτωση του παραδείγματος Go, θα είναι το εκτελέσιμο αρχείο που προκύπτει.

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

Στη συνέχεια, πρέπει να ορίσετε τα «μέρη»Αυτά είναι τα δομικά στοιχεία που αποτελούν το πακέτο σας: η κύρια εφαρμογή σας, οι βοηθητικοί πόροι, οι πρόσθετες εξαρτήσεις κ.λπ. Κάθε μέρος συνήθως περιλαμβάνει ένα συγκεκριμένο πρόσθετο ανάλογα με τη γλώσσα ή την τεχνολογία που χρησιμοποιείτε. Για παράδειγμα, υπάρχουν πρόσθετα για το Go, Python, Ruby, Rust, Node.js, Java, κ.λπ.

Για να την δει λίστα υποστηριζόμενων προσθηκών Για την έκδοση του Snapcraft που διαθέτετε, μπορείτε να χρησιμοποιήσετε:

snapcraft list-plugins

Στην περίπτωση ενός παραδείγματος στο GoΜια ελάχιστη διαμόρφωση εξαρτημάτων θα μπορούσε να είναι:

parts:
helloworld:
plugin: go
source: .
go-importpath: helloworld

η επιλογή source: . υποδεικνύει ότι ο πηγαίος κώδικας βρίσκεται στον ίδιο κατάλογο όπου βρίσκεται το αρχείο snapcraft.yaml, και η παράμετρος go-importpath Ορίζει τη διαδρομή εισαγωγής για το πρόσθετο Go. Άλλα πρόσθετα έχουν τις δικές τους ειδικές επιλογές, τις οποίες μπορείτε να συμβουλευτείτε. snapcraft help nombre-del-plugin.

Προς το παρόν, μπορείτε να αφήσετε το αρχείο ανοιχτό, επειδή η διαμόρφωση που σχετίζεται με το [παρακάτω] δεν έχει ακόμη προστεθεί. περιορισμός ασφαλείας και άδειες πρόσβασης που θα χρειαστεί η αίτησή σας.

Περιορισμός, διεπαφές και πρόσθετα: έλεγχος δικαιωμάτων Snap

Ένα από τα καθοριστικά χαρακτηριστικά του Snap είναι ότι Οι εφαρμογές εκτελούνται σε ένα περιβάλλον δοκιμών ή sandbox. το οποίο περιορίζει τις δυνατότητές τους. Αυτό έχει ρυθμιστεί στο αρχείο snapcraft.yaml χρησιμοποιώντας το κλειδί confinement και, όταν είναι απαραίτητο, μέσω διεπαφών και βυσμάτων.

Για να ξεκινήσετε, προσθέστε ένα γραμμή περιορισμού να αρχειοθετήσω:

confinement: strict

Λειτουργία Το αυστηρό είναι το υψηλότερο επίπεδο ασφαλείας Και είναι η συνιστώμενη προσέγγιση για τις περισσότερες περιπτώσεις, όταν πρόκειται να δημοσιεύσετε το πακέτο δημόσια. Υπό αυτόν τον περιορισμό, η εφαρμογή σας δεν μπορεί να έχει ελεύθερη πρόσβαση στο δίκτυο, στο σύστημα αρχείων του κεντρικού υπολογιστή ή σε άλλους πόρους, εκτός εάν το επιτρέψετε μέσω συγκεκριμένων διεπαφών.

Οι διεπαφές είναι σαν «συνδέσεις δικαιωμάτων» που επιτρέπουν στο Snap να έχει πρόσβαση σε έναν συγκεκριμένο πόρο: είσοδο και έξοδο ήχου, κάμερα, δίκτυο, αρχικό κατάλογο, αρχεία συστήματος κ.λπ. Μερικά από τα πιο συχνά χρησιμοποιούμενα είναι:

  • αναπαραγωγή ήχου: για αναπαραγωγή ήχου.
  • ηχογράφηση: για να καταγράψετε ήχο από το μικρόφωνο.
  • φωτογραφική μηχανή: για να χρησιμοποιήσετε συνδεδεμένες κάμερες web.
  • σπίτι: για ανάγνωση και εγγραφή σε μη κρυφά αρχεία στον αρχικό κατάλογο.
  • δίκτυο: για πρόσβαση στο Διαδίκτυο και στο τοπικό δίκτυο.
  • σύνδεση δικτύου: έτσι ώστε η εφαρμογή να λειτουργεί ως υπηρεσία δικτύου και να ακούει σε θύρες.
  • αρχεία συστήματος: για ευρεία δικαιώματα στο σύστημα αρχείων κεντρικού υπολογιστή.

Για να συσχετίσετε αυτές τις διεπαφές με το Snap σας, ορίζετε βύσματα με περιγραφικά ονόματα στην αντίστοιχη ενότητα του YAML. Ένα απλό παράδειγμα που παρέχει πρόσβαση στο δίκτυο και στον αρχικό φάκελο θα ήταν:

plugs:
helloworld-home:
interface: home
helloworld-network:
interface: network

Το όνομα του βύσματος (για παράδειγμα, helloworld-homeΑυτό θα βλέπουν οι χρήστες κατά τον έλεγχο των συνδέσεων, επομένως θα πρέπει να είναι σαφές. Αργότερα, μόλις εγκατασταθεί το Snap, μπορείτε να δείτε πώς φαίνονται αυτοί οι σύνδεσμοι με την εντολή snap connections nombre-del-snap, το οποίο θα δείχνει ποια διεπαφή έχει συνδεθεί σε κάθε βύσμα.

  Πώς να κατεβάσετε και να χρησιμοποιήσετε το εργαλείο δημιουργίας μέσων των Windows 11

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

Un πλήρες παράδειγμα Το πρόγραμμα Hello World θα μπορούσε να μοιάζει με αυτό:

name: helloworld
summary: Pequeño programa Hello World en Go empaquetado como Snap.
description: |
Aplicación de ejemplo que imprime "Hello, world!" en la terminal.
Empaquetada usando Snapcraft para mostrar el flujo de trabajo básico.
version: '1.0'
confinement: strict
apps:
helloworld:
command: helloworld
parts:
helloworld:
plugin: go
source: .
go-importpath: helloworld
plugs:
helloworld-home:
interface: home
helloworld-network:
interface: network

Δημιουργήστε, εγκαταστήστε τοπικά και δοκιμάστε το πακέτο Snap

Αφού ολοκληρωθεί η εγκατάσταση, ήρθε η ώρα να Μεταγλωττίστε το Snap και δοκιμάστε το στο δικό σας σύστημαΒεβαιωθείτε ότι βρίσκεστε στον ριζικό κατάλογο του έργου και εκτελέστε:

snapcraft

Το Snapcraft θα ξεκινήσει ένα εικονική μηχανή ή περιβάλλον καθαρής κατασκευής (ανάλογα με την έκδοση και το backend που χρησιμοποιείτε), θα κατεβάσει τις απαραίτητες εξαρτήσεις και θα δημιουργήσει το πακέτο. Εάν όλα πάνε καλά, θα δείτε ένα μήνυμα όπως αυτό στο τέλος:

Snapped helloworld_1.0_amd64.snap

Αυτό το αρχείο Το helloworld_1.0_amd64.snap είναι το πακέτο που προκύπτειΕίναι έτοιμο για εγκατάσταση σε συμβατά συστήματα. Για να το δοκιμάσετε τοπικά, χρησιμοποιήστε την ακόλουθη εντολή (από τον ίδιο κατάλογο ή καθορίζοντας τη διαδρομή):

sudo snap install helloworld_1.0_amd64.snap --dangerous

η επιλογή –ο επικίνδυνος ενημερώνει το snapd ότι είναι τοπικός χρήστης του Snap χωρίς επίσημη υπογραφήΕπομένως, η εγκατάσταση γίνεται με δική σας ευθύνη. Όταν ολοκληρωθεί, θα δείτε ένα μήνυμα όπως "helloworld 1.0 installed".

Από εκεί, μπορείτε εκτελέστε την εντολή που ορίσατε στην ενότητα εφαρμογές, σε αυτήν την περίπτωση:

helloworld

Αν το πρόγραμμά σας είναι καλοφτιαγμένο, θα πρέπει να εμφανίζει το κείμενο «Γεια, κόσμο!» σε τυπική έξοδο, επαληθεύοντας ότι το Snap λειτουργεί σωστά. Για να ελέγξετε τα ενεργά δικαιώματα και τις συνδέσεις διεπαφής, μπορείτε να χρησιμοποιήσετε:

snap connections helloworld

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

Δημοσιεύστε το Snap σας στο Snap Store και διαχειριστείτε το ανά κανάλι

Μόλις η αίτησή σας συσκευαστεί και δοκιμαστεί σωστά, το λογικό επόμενο βήμα είναι να το διαθέσετε στον υπόλοιπο κόσμο μέσω του Snap StoreΓια να το κάνετε αυτό, χρειάζεστε έναν λογαριασμό προγραμματιστή Snapcraft και να χρησιμοποιήσετε την ίδια την εντολή. snapcraft για να επαληθεύσετε την ταυτότητά σας και να ανεβάσετε το αρχείο.

Ξεκινήστε συνδεόμενοι στον λογαριασμό προγραμματιστή σας από τερματικό:

snapcraft login

Εισαγάγετε τη διεύθυνση email και τον κωδικό πρόσβασής σας που σχετίζεται με τον λογαριασμό σας. Μόλις ολοκληρωθεί η επαλήθευση, το επόμενο βήμα είναι Καταχωρίστε το όνομά σας στο Snap στο κατάστημα ώστε να παραμένει συνδεδεμένο με εσάς:

snapcraft register helloworld

Εάν το όνομα είναι διαθέσιμο, η λειτουργία θα ολοκληρωθεί και θα μπορείτε να Ξεκινήστε να ανεβάζετε κριτικές για το πακέτο σας στο Snap Store χρησιμοποιώντας την εντολή snapcraft push:

snapcraft push helloworld_1.0_amd64.snap

Μετά τη διαδικασία μεταφόρτωσης και αυτόματης αξιολόγησηςΘα δείτε ένα μήνυμα παρόμοιο με:

Revision 1 of 'helloworld' created.

Κάθε φορά που δημοσιεύετε μια νέα έκδοση του ίδιου πακέτου, ο αριθμός των αναθεωρήσεων θα αυξηθείΑυτό είναι πολύ πρακτικό για τον εντοπισμό συγκεκριμένων builds και την εκτέλεση επαναφορών, εάν είναι απαραίτητο. Το τελικό βήμα για να γίνει το Snap εγκατεστημένο από οποιονδήποτε είναι η κυκλοφορία αυτής της αναθεώρησης σε ένα κανάλι.

snapcraft release helloworld 1 stable

Εδώ υποδεικνύεις ότι πρέπει να κυκλοφορήσει αναθεώρηση 1 στο «σταθερό» κανάλιΈχετε επίσης κανάλια υποψήφιο, βήτα και edge για τη διανομή δοκιμαστικών εκδόσεων, την έκδοση υποψηφίων ή μη σταθεροποιημένων δομών ανάπτυξης (βλ. Πώς να εγκαταστήσετε δύο εκδόσεις του ίδιου πακέτου). Στο τέλος, θα δείτε έναν πίνακα με κανάλια και αναθεωρήσεις που υποδεικνύει ποια έκδοση είναι διαθέσιμη σε κάθε ένα από αυτά.

Από εκείνη τη στιγμή και μετά, οποιοσδήποτε χρήστης με snapd θα μπορεί να εγκαταστήσει την εφαρμογή σας με ένα «sudo snap εγκατάσταση helloworld» και να λαμβάνετε αυτόματες ενημερώσεις όταν δημοσιεύετε νέες κριτικές στο σχετικό κανάλι.

Πώς να εγκαταστήσετε λογισμικό με το apt και το snap
Σχετικό άρθρο:
Πώς να εγκαταστήσετε λογισμικό με apt και snap σε Linux: Πλήρης οδηγός