Linux

Snap vs. Flatpak vs. AppImage: Ποιες είναι οι διαφορές τους;

Η σύγκριση που περίμενες τόσο καιρό: Snap vs. Flatpak vs. AppImage
Pinterest LinkedIn Tumblr

Όταν έχουμε να κάνουμε με τις Linux εφαρμογές, μπορείς να εγκαταστήσεις τριών διαφορετικών ειδών, συμπεριλαμβανομένων των Snap, Flatpak και AppImage. Αλλά ποιες είναι οι διαφορές τους και ποια μορφή αρχείων να προτιμάς στη Linux διανομή σου;

Τα τελευταία χρόνια, οι χρήστες του Linux έχουν μάθει να χρησιμοποιούν τριών ειδών διαφορετικές μορφές εφαρμογών και προγραμμάτων στις διανομές τους. Αυτές οι μορφές πακέτων ονομάζονται Snap, Flatpk και AppImage, ενώ υπάρχουν και άλλες που εστιάζουν σε έναν εντελώς διαφορετικό τρόπο λειτουργίας. Για παράδειγμα, διανομές όπως το Fedora και το Endless OS χρησιμοποιούν εντελώς ανεξάρτητες μορφές πακέτων για να τρέξουν τις εφαρμογές.

Οι Package Managers (Διαχειριστές Πακέτων) δίνουν την δυνατότητα στους προγραμματιστές να δημιουργούν, να παρέχουν και να εγκαθιστούν αλλά και να ενημερώνουν τις εφαρμογές τους σε οποιοδήποτε σύστημα τρέχει το Linux. Ωστόσο, οι ανεξάρτητοι Διαχειριστές Πακέτων είναι διαφορετικοί από τους κλασικούς Διαχειριστές όπως το .deb και το .rpm, οι οποίες είναι βασισμένες σε συγκεκριμένες πλατφόρμες.

Διάβασε επίσης: Οι καλύτερες Linux διανομές για αρχάριους

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

Snap vs. Flakpak vs. AppImage

Σε αυτό το άρθρο, θα δούμε τις διαφορές των τριών μορφών και θα να ανακαλύψουμε τις δυνατότητες της κάθε μιας ξεχωριστά, επιλέγοντας στο τέλος την πιο κατάλληλη για εμάς.

1. Snap εφαρμογές

Snap εφαρμογές

Η μορφή Snap εφαρμογών είναι ανεξάρτητη και έχει δημιουργηθεί από την Canonical, την εταιρεία που έφτιαξε και διατηρεί το Ubuntu. Η συγκεκριμένη μορφή εμφανίστηκε για πρώτη φορά το 2014 και από τότε “υοθετίθηκε” και από άλλες διανομές όπως το Arch, Linux Mint, CentOS, Gentoo και Fedora.

Ο κύριος σκοπός της συγκεκριμένης μορφής αρχείων ήταν πάντα ένας: Μια μορφή εφαρμογών που θα περιλαμβάνει μέσα οτιδήποτε χρειάζεται για να τρέξει σε κάθε διανομή και κάθε συσκευή – συμπεριλαμβανομένων και των IoT, τις embedded συσκευές που τρέχουν το Ubuntu Core (μια μινιμαλιστική έκδοση του Ubuntu) αλλά και υπολογιστές που τρέχουν κάποια έκδοση που βασίζεται στο Ubuntu ή είναι του Ubuntu.

Με τις τελευταίες εκδόσεις του Ubuntu, το Software Center περιλαμβάνει πλέον μόνο Snap apps, αλλά μπορείς επίσης να τα βρεις και να τα εγκαταστήσεις και από το Snapcraft, την επίσημη ιστοσελίδα Snap εφαρμογών της Canonical.

2. Flatpak εφαρμογές

Flatpak εφαρμογές

Όπως και η μορφή Snap, έτσι και οι Flatpak εφαρμογές είναι ανεξάρτητες και μπορούν να τρέξουν σε όποια διανομή τις υποστηρίζει. Προηγουμένως γνωστή ως xdg-app, η δομή αυτής της μορφής εφαρμογών ήταν πάντοτε η εκτέλεση εφαρμογών μέσα σε ένα ασφαλές εικονικό sandbox χωρίς να απαιτούνται διαχειριστικά δικαιώματα και χωρίς να υπάρχουν κενά ασφάλειας στο σύστημα.

Το Flatpak κυκλοφόρησε επίσημα το 2015 έχοντας από πίσω να το υποστηρίζει το Red Hat, το Endless Computers και το Collabora. Το σχέδιο ήταν να στοχεύσει στα Desktop περιβάλλοντα, στα οποία βρίσκονται το FreeDesktop, KDE και Gnome. Ορισμένες από τις Linux διανομές που υποστηρίζουν αυτή την στιγμή το Flatpak είναι το Arch Linux, Debian, Fedora, Mageia, Solus, Manjaro (βασίζεται στο Arch) και Ubuntu.

Η ίδια η δομή του Flatpak δημιουργήθηκε με τη γλώσσα προγραμματισμού C και κυκλοφόρησε υπό την άδεια LGPL. Ο υπεύθυνος προγραμματιστής είναι ο Alexander Larsson, ο οποίος δουλεύει επίσης και στην Red Hat. Όπως και το Snapcraft για τις Snap εφαρμογές, έτσι και το Flatpak παρέχει τις εφαρμογές του στο Flathub App Store, απ’ όπου οι χρήστες μπορούν να ανακαλύψουν νέες εφαρμογές και να τις εγκαταστήσουν στην Linux διανομή τους.

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

3. AppImage

AppImage

Δεν είναι λίγες οι εφαρμογές που χρησιμοποιούν την μέθοδο του AppImage για να τρέξουν στις περισσότερες διανομές. Η συγκεκριμένη μορφή εφαρμογών είναι μια από τις πιο γνωστές και έκανε την εμφάνιση της για πρώτη φορά το 2004. Αναφερόμενο και ως Portable Package Format, η AppImage μορφή ακολουθεί μια μέθοδο: Μια εφαρμογή ισούται με ένα αρχείο. Τελεία και παύλα. Αυτό σημαίνει πως είναι μια ανεξάρτητη μορφή η οποία περιλαμβάνει μια ολόκληρη εφαρμογή με λίγες ή πολλές δυνατότητες, που έρχεται όμως μέσα σε ένα αρχείο, και όχι με πολλαπλά αρχεία.

Για να τρέξεις μια AppImage εφαρμογή, θα χρειαστεί να κάνεις δεξί κλικ πάνω της και στη συνέχεια να τις δώσεις δικαιώματα για να είναι εκτελέσιμη (executable). Στη συνέχεια, κάνε διπλό κλικ για να την ανοίξεις και αυτή θα προστεθεί αυτόματα και στις εφαρμογές του συστήματος σου.

Οι χρήστες έχουν την δυνατότητα να ανακαλύψουν όλες τις AppImage εφαρμογές στην επίσημη ιστοσελίδα. Αυτό που πρέπει να γνωρίζεις, ωστόσο, είναι πως σε αντίθεση με τις Snap και Flatpak εφαρμογές, τα AppImage πακέτα έρχονται με επιπρόσθετες πληροφορίες για το πως να τα ενημερώνεις στο σύστημα σου. Σε αντίθεση με τις άλλες μορφές, τα AppImage πακέτα δεν χρησιμοποιούν αποθετήρια (repositories) για να εγκαταστήσουν τις ενημερώσεις. Ως εκ τούτου, όλα τα AppImage πακέτα μπορούν να ενημερωθούν με το εργαλείο AppImageUpdate.

Στον παρακάτω πίνακα θα βρεις επίσης λεπτομερώς τις κύριες διαφορές μεταξύ των Snap, Flatpak και AppImage πακέτων.

ΔυνατότητεςSnapFlatpakAppImage
Ενεργοποίηση Controls Toggles (GUI και CLI) σαν τις Android συσκευέςΝαιΝαιΌχι
Sandboxing ΥποστήριξηΝαιΝαιΝαι
Sandboxing MandatoryΝαιΝαιΌχι
Φορητότητα εφαρμογώνΝαιΝαιΌχι
Υποστήριξη Native ThemeΝαι (με προειδοποιήσεις)Ναι (με προειδοποιήσεις)Ναι (με προειδοποιήσεις)
Υποστήριξη για Bundled LibrariesΝαιΝαιΝαι
Πλήρως Περιεχόμενη Ενιαία Εκτελέσιμη Υποστήριξη. Όπως ένα αρχείο .exe για τα WindowsΌχιΌχιΝαι
Online App StoreΝαιΝαιΝαι
Υποστήριξη παράλληλων εφαρμογών πολλαπλών εκδόσεωνΝαιΝαιΝαι
Αυτόματες ΕνημερώσειςΝαιΝαιΝαι (με προειδοποιήσεις)
Υποστήριξη για το Chrome OS (μέσω των Crostini containers)ΝαιΝαιΝαι
Μέγεθος ΑρχείωνΔιαφέρει, αλλά μεγαλύτερα από τα AppImageΔιαφέρει, αλλά μεγαλύτερα από τα AppImageΤο χαμηλότερο
Αριθμός Διαθέσιμων Εφαρμογών στα StoresΥψηλόςΟ χαμηλότεροςΚάπου ενδιάμεσα
Plugins για Desktop App Store SoftwareΝαιΝαιΌχι

Συμπέρασμα..

Και οι τρεις ανεξάρτητες μορφές πακέτων που ανέφερα παραπάνω παρέχουν εξαιρετικές δυνατότητες και χρησιμοποιούνται από εκατομμύρια χρήστες. Αν και χρειάζονται ακόμα αρκετή δουλειά για να γίνουν πολύ καλύτερες, όπως για παράδειγμα τα Snapp apps τα οποία έχουν κατακριθεί από αρκετούς χρήστες πως καθυστερούν να ανοίξουν, ή το στυλ τους διαφέρει αρκετά από αυτό της διανομής τους.

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


Εσύ ποιες από τις τρεις διαφορετικές μορφές πακέτων προτιμάς και γιατί; Θα χαρώ να ακούσω τις απόψεις σου στα σχόλια στο τέλος του άρθρου.

Featured Image Credits: Ctrl.blog

Δεν υπάρχει τίποτα που να με ενθουσιάζει περισσότερο από έναν άνθρωπο που έχει μια μοναδική ιστορία να διηγηθεί. Ως blogger, είχα την ευκαιρία να γράψω πάρα πολλές ιστορίες, και δεν θέλω να σταματήσω ποτέ.

Γράψε ένα σχόλιο