Όταν έχουμε να κάνουμε με τις 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 εφαρμογών είναι ανεξάρτητη και έχει δημιουργηθεί από την 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 εφαρμογές
Όπως και η μορφή 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 για να τρέξουν στις περισσότερες διανομές. Η συγκεκριμένη μορφή εφαρμογών είναι μια από τις πιο γνωστές και έκανε την εμφάνιση της για πρώτη φορά το 2004. Αναφερόμενο και ως Portable Package Format, η AppImage μορφή ακολουθεί μια μέθοδο: Μια εφαρμογή ισούται με ένα αρχείο. Τελεία και παύλα. Αυτό σημαίνει πως είναι μια ανεξάρτητη μορφή η οποία περιλαμβάνει μια ολόκληρη εφαρμογή με λίγες ή πολλές δυνατότητες, που έρχεται όμως μέσα σε ένα αρχείο, και όχι με πολλαπλά αρχεία.
Για να τρέξεις μια AppImage εφαρμογή, θα χρειαστεί να κάνεις δεξί κλικ πάνω της και στη συνέχεια να τις δώσεις δικαιώματα για να είναι εκτελέσιμη (executable). Στη συνέχεια, κάνε διπλό κλικ για να την ανοίξεις και αυτή θα προστεθεί αυτόματα και στις εφαρμογές του συστήματος σου.
Οι χρήστες έχουν την δυνατότητα να ανακαλύψουν όλες τις AppImage εφαρμογές στην επίσημη ιστοσελίδα. Αυτό που πρέπει να γνωρίζεις, ωστόσο, είναι πως σε αντίθεση με τις Snap και Flatpak εφαρμογές, τα AppImage πακέτα έρχονται με επιπρόσθετες πληροφορίες για το πως να τα ενημερώνεις στο σύστημα σου. Σε αντίθεση με τις άλλες μορφές, τα AppImage πακέτα δεν χρησιμοποιούν αποθετήρια (repositories) για να εγκαταστήσουν τις ενημερώσεις. Ως εκ τούτου, όλα τα AppImage πακέτα μπορούν να ενημερωθούν με το εργαλείο AppImageUpdate.
Στον παρακάτω πίνακα θα βρεις επίσης λεπτομερώς τις κύριες διαφορές μεταξύ των Snap, Flatpak και AppImage πακέτων.
Δυνατότητες | Snap | Flatpak | AppImage |
---|---|---|---|
Ενεργοποίηση 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
2 Σχόλια
Αν έχεις το aur καμία από αυτές τις πορδοεφαρμογες δε χρειάζεται. Ειδικά το snap που δε φεύγει με τίποτα άπαξ και το εγκαταστήσεις, υπο την έννοια οτι αφήνει πίσω του κατάλοιπα είναι ένα έγκλημα. Φυσικά δεν είναι τυχαίο οτι το χρησιμοποιεί κυρίως το Ubuntu η διανομή που ευθύνεται για το wsl.
Συμφωνώ! Και εγώ Arch ή Manjaro χρησιμοποιώ αποκλειστικά για το AUR, όλα τα άλλα μου φαίνονται περιττά.