Flatpak vs Snap vs Appimage : Τελικά έχει νόημα η χρήση τους;

snap-vs-flatpak

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

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

snap-vs-flatpak

Έτσι και έγινε

Για την ακρίβεια δεν έγινε ένα άλλα τρία διαφορετικά packaging formats που ακούνε στα ονόματα flatpak, snap και appimage. Εκεί που πήγαινε να ξεκαθαρίσει το τοπίο, ξαφνικά τα πράγματα περιπλέχτηκαν ακόμη περισσότερο. Είναι το κλασσικό «παράδοξο» που προσπαθούμε να φτιάξουμε μια νέα μέθοδο για να αντικαταστήσουμε/ενοποιήσουμε παλιές μεθόδους και τελικά καταλήγουμε με μια επιπλέον μέθοδο μαζί με τις άλλες.

snap-vs-flatpack-vs-appimage
Το παράδοξο δημιουργίας νέας-ενιαίου μεθόδου που αντικαθιστά όλα τα παλιά (πηγή: https://xkcd.com/927/)

Τι είναι τα packaging formats;

Στην ουσία τα packaging formats πακετάρουν όλα τα απαραίτητα αρχεία και εξαρτήσεις που χρειάζεται μια εφαρμογή για να τρέξει και το κάνουν με τέτοιο τρόπο ώστε οι βιβλιοθήκες και εξαρτήσεις αυτής να είναι ανεξάρτητες από το υπόλοιπο σύστημα. Αυτό με τη σειρά του επιτρέπει :

  • Εύκολη εγκατάσταση σε οποιαδήποτε Linux διανομή
  • Αυξημένο επίπεδο ασφάλειας (τα αρχεία της εφαρμογής δεν αλληλεπιδρούν με αρχεία συστήματος)
  • Εύκολη (αυτόματη) αναβάθμιση και διανομή των εφαρμογών
  • Σημαντικά πιο εύκολο πακετάρισμα εφαρμογών

Ωστόσο αν και οι τεχνολογίες αυτές υπάρχουν εδώ και αρκετό καιρό (πάνω από 2 χρόνια) εκτιμώ πως δεν έκαναν την αναμενόμενη αίσθηση και να ικανοποιήσουν το πάγιο αίτημα της Linux κοινότητας που είναι ένα πακετάρισμα για όλα.

Από που μπορώ να εγκαταστήσω flatpak/snap/appimage

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

Flatpak, το ψυχοπαίδι του gnome και της Redhat

Όταν από πίσω έχεις τη Redhat και το Gnome Foundation, ας πούμε ότι η επιτυχία σου είναι εγγυημένη. Δεν είναι όμως ακριβώς έτσι. Παρότι είναι εύκολος ο τρόπος ρύθμισης η εγκατάσταση με εκνεύρισε σε βαθμό να μη θέλω να το χρησιμοποιήσω.

Δείτε επίσης: Snap vs Flatpak: Canonical vs Red Hat

Οι εφαρμογές flatpak εγκαθίστανται μέσω flathub που θα περίμενε κανείς ότι θα είναι μια σχετικά απλή διαδικασία.

flathub
Το Flathub περιέχει αρκετά πακέτα αλλά η εγκατάσταση μερικών μου ήταν αδύνατη

Και όμως, όταν πήγα να εγκαταστήσω ένα πακέτο από το τερματικό μου έβγαλε έτσι απλά ότι το πακέτο δεν υπήρχε. Ίσως να είχε πρόβλημα ο server εκείνη τη στιγμή και για αυτό δεν του έδωσα σημασία.

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

Πακέτα έχει αρκετά (περί τα 230) και το γεγονός ότι έπρεπε να βάλω το αποθετήριο από τη γραμμή τερματικού αφαιρεί πόντους από αυτό που θέλει να πετύχει η συγκεκριμένη τεχνολογία. Ευτυχώς το gnome-software επιτρέπει την εγκατάσταση flatpak μέσα από το UI του, κάτι που διευκολύνει αρκετά τα πράγματα.

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

Snap, το format που προτιμούν οι εταιρείες

Σ.Σ. (19/4/2018):  Όπως πολύ σωστά με διόρθωσε ο Σίμος Ξενιτέλης τα πακέτα αριθμούνται περί τα 1410 σύμφωνα με το uApp Explorer

Τα πακέτα Snap είναι το format που προωθεί η Canonical. Η εγκατάσταση των πακέτων γίνεται είτε από το  Κέντρο λογισμικού (16.04+) είτε μέσω τερματικού και ευτυχώς εδώ, τα ονόματα των πακέτων είναι ίδια με αυτά του ονόματος της εκάστοτε εφαρμογής. Παρότι μια επίσκεψη στο επίσημο store των Snap θα μας δώσει την εντύπωση ότι υπάρχουν μόνο 16 πακέτα, στην πραγματικότητα είναι παραπάνω μιας και η σελίδα εμφανίζει μόνο τα Προεξέχοντα (Featured) πακέτα snap. Για παράδειγμα δεν εμφανίζονται το VLC, Clementine, Gimp, JetBrains κλπ. Αντίθετα αν επισκεφτείτε την σελίδα της κοινότητας στο uApp Explorer θα δείτε ότι είναι πάνω από 1400 πακέτα.

snapcraft
Mια επίσκεψη στο επίσημο store των Snap θα μας δώσει την λανθασμένη εντύπωση ότι υπάρχουν μόνο 16 πακέτα

Παρότι και εδώ οι περισσότερες εφαρμογές πακετάρονται από εθελοντές, θα πρέπει να σημειώσουμε ότι σε αντίθεση με το flatpak, εδώ βλέπουμε ότι οι εταιρείες φαίνεται να προτιμούν το snap (λόγω δημοτικότητας του Ubuntu) και πακετάρουν επίσημα τις εφαρμογές τους (πχ Skype:Microsoft, Spotify, Firefox:Mozilla κλπ)

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

Appimage, ουσιώδης υλοποίηση αλλά την ψάχνουμε με το κυάλι

Τα appimage μέχρι στιγμής ήταν τα πακέτα που όπου τα βρήκα δούλεψαν απροβλημάτιστα. Το βασικό αρνητικό τους είναι ότι δεν έρχονται μέσω κάποιου αποθετηρίου αλλά ταυτόχρονα αυτό τα καθιστά portable και εύκολο να τα τρέξουμε σε πολλούς υπολογιστές με Linux χωρίς πολλά πολλά.

appimage
To appimage κάνει αυτό που υπόσχεται χωρίς πολλά πολλά

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

Υπάρχει μεν μια λίστα αλλά σε καμιά περίπτωση δε θεωρείται πλήρης.

Το θετικό με το appimage format είναι ότι όλα πακετάρονται σε ένα αρχείο. Σβήνεις το αρχείο και δεν έχεις υπολείμματα της εφαρμογής.

Έχει νόημα η χρήση τους;

Στο linux η ύπαρξη των τεχνολογιών νοηματοδοτείται από τους ίδιους τους χρήστες. Αν υπάρχει λόγος ύπαρξης μιας τεχνολογίας, η κοινότητα θα συνδράμει όπως άλλωστε κάνει εδώ και 27 χρόνια.

Οι τεχνολογίες των flatpak, snap και appimage όσο φιλόδοξες και να παρουσιάζονται, έχουν ακόμη αρκετό δρόμο μέχρι να φτάσουν στο desktop του μέσου χρήστη. Ως τότε ας «συμβιβαστούμε» με τον πλουραλισμό των πακέτων στο Linux που άλλωστε αυτό είναι και το βασικό συστατικό της πολυμορφίας του.

 

 

Advertisements

5 thoughts on “Flatpak vs Snap vs Appimage : Τελικά έχει νόημα η χρήση τους;

  1. Έχοντας χρησιμοποιήσει και τα 3, ποιο απροβλημάτιστα δούλεψαν Flatpak και AppImage .Το Snap παρά είναι ubuntu-specific και σε συστήματα όπως το Fedora και Arch έχει θεματάκια

  2. Από την πρώτη φορά που άκουσα για τα Flatpack/Snap ήμουν πολύ επιφυλακτικός. Το πρώτο πράγμα που μου ήρθε στο μυαλό είναι ότι με αυτά προσπαθούμε να φέρουμε στο linux όλα τα προβλήματα που προκύπτουν από τον παραδοσιακό τρόπο διάθεσης και εγκατάστασης εφαρμογών στα windows. Ζηλέψαμε δηλαδή το να κατεβάζει ο χρήστης μόνος του από τυχάρπαστες σελίδες στο διαδίκτυο εκτελέσιμα αρχεία και να τα τρέχει με διπλό κλικ (με ότι συνεπάγεται αυτό στην ασφάλεια), τα εκατοντάδες MB των αρχείων εγκατάστασης και το «παιχνίδι με τις τάπες των βαρελιών» μέχρι να κατέβουν και να αποσυμπιεστούν – εγκατασταθούν, ακόμα και για μικρές εφαρμογές (αφού θα περιέχουν υποχρεωτικά όλες τις εξαρτήσεις – βιβλιοθήκες ανεξάρτητα αν υπάρχουν ήδη στο σύστημά μας), την έλλειψη κοινότητας που επιλέγει, ελέγχει, συγκεντρώνει και συναρμολογεί τα συστατικά – εφαρμογές του λειτουργικού μας ώστε να έχουμε μέγιστη απόδοση, ασφάλεια και επαναχρησιμοποίηση πόρων, την παράδοση του χρήστη στο έλεος του κάθε παραγωγού λογισμικού αμφιβόλου ποιότητας και χρησιμότητας που ενσωματώνει βιβλιοθήκες και λογισμικά τρίτων που δεν θα ελέγξει κανείς και πιθανότατα δεν θα ενημερώσει κανείς (απλά θα μένουν σε πολλαπλά αντίγραφα να γεμίζουν το δίσκο του υπολογιστή και να τον εκθέτουν σε κινδύνους και ευπάθειες (τους οποίους προσπαθεί να μετριάσει το γεγονός ότι οι εφαρμογές τρέχουν απομονωμένες η μια από την άλλη και από το σύστημα – πόσο σίγουρος μπορεί να είναι κανείς γι αυτό και πόσο πιθανό είναι ένα μικρό bug στην υλοποίηση του ενός ή του άλλου μηχανισμού πακέτων ή ακόμα και στον πυρήνα να τινάξει αυτή την απομόνωση στον αέρα). Στο οικοσύστημα του linux οι κοινότητες που παίζουν κεντρικό, αναντικατάστατο και πολυδιάστατο ρόλο (επιλέγουν, ελέγχουν, συναρμολογούν, πακετάρουν, ρυθμίζουν, βελτιστοποιούν, αποσφαλματώνουν, μεταφράζουν, βελτιώνουν και εξασφαλίζουν την ασφάλεια του λογισμικού που τρέχει στους υπολογιστές μας, αλλά και των καναλιών μέσω των οποίων φτάνει σε εμάς). Σε αυτή τη συνεισφορά της κοινότητας βασίζεται και η μέχρι στιγμής επιτυχής και συνεχώς ανοδική πορεία του GNU/Linux. Το να προσπαθούμε να βγάλουμε από τη μέση αυτό το πολυδύναμο εργαλείο, την κοινότητα και τις δομές και διεργασίες που αυτή χρησιμοποιεί, στο όνομα της πιο άμεσης επαφής του παραγωγού (- εταιρίας) του λογισμικού με τον τελικό χρήστη (σαν να λέμε του λύκου με τα πρόβατα), μόνο αρνητικές επιπτώσεις μπορεί να έχει στη γενική περίπτωση. Γι’ αυτό και δεν μου κάνει καμία εντύπωση που αυτές οι τεχνολογίες (flatpack, snap κλπ) δεν αποκτούν ιδιαίτερη απήχηση εκτός λίγων και συγκεκριμένων περιπτώσεων χρήσης (embeded, IoT) όπου ο χρήστης και η κοινότητα δεν έχει έτσι κι αλλιώς (ακόμα;) τον έλεγχο των συσκευών και του λογισμικού τους.

  3. Θα συμφωνήσω πλήρως με τον ktogias. Ναι υπάρχουν περιπτώσεις που κάτι τέτοιο θα ήταν χρήσιμο, αλλά ποιο το κέρδος για πχ τον firefox?

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

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

w

Σύνδεση με %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.