Snap Package: Η νέα μορφή πακέτων εγκατάστασης για Ubuntu (Μέρος 1)

Με την έλευση του Ubuntu 16.04, οι χρήστες θα μπορούν να χρησιμοποιούν και την νέα μορφή εγκατάστασης προγραμμάτων στο σύστημά τους ενώ οι προγραμματιστές από την άλλη θα έχουν την δυνατότητα να παρέχουν το λογισμικό τους σε νεότερες εκδόσεις πιο άμεσα. Τι σημαίνουν όμως όλα αυτά για τον τελικό χρήστη;

snap-package-ubuntu-ti-einai-egkatastash

Εισαγωγή

Σε μια εποχή που κυριαρχούν οι «έξυπνες» συσκευές με λειτουργικά όπως το Android και το iOS, η πλειοψηφία του κόσμου έχει συνηθίσει να  ανοίγει το Play store / App Store της συσκευής του και να κάνει εγκατάσταση άμεσα όποια εφαρμογή τον ενδιαφέρει με ένα κλικ σε κουμπί που γράφει «Εγκατάσταση». Το ίδιο πλέον περιμένει και από τον υπολογιστή του. Γιαυτό και οι εταιρείες Google, Microsoft και Apple έχουν ενσωματώσει τα τελευταία χρόνια ένα Κέντρο λογισμικού στα συστήματά τους όπως ακριβώς και οι διανομές Linux οι οποίες φυσικά το έχουν εδώ και 20+ χρόνια.

Πολύ ωραία όλα αυτά… και μπορεί εξωτερικά να μοιάζουν όλα με ένα «κλικ-install-τέλος», στην πραγματικότητα όμως διαφέρουν κάτω από το καπό. Διότι σε αντίθεση με άλλα λειτουργικά συστήματα, στις Linux διανομές οι εφαρμογές κατεβαίνουν και γίνονται εγκατάσταση χρησιμοποιώντας shared libraries και όχι statically-linked library. Μπερδευτήκατε ε;

Για να διευκολύνουμε την συζήτηση, θα μιλήσουμε συγκεκριμένα για το Ubuntu μιας και το snap αφορά προς το παρόν μόνο το Ubuntu.

Επίσης να διευκρινίσουμε εξαρχής ότι το Ubuntu ΔΕΝ ΦΕΥΓΕΙ από τον παραδοσιακό τρόπο εγκατάστασης πακέτων (deb) απλά ΠΡΟΣΘΕΤΕΙ άλλον έναν τρόπο. Όπως παράδειγμα εδώ και χρόνια το Κέντρο Λογισμικού με deb πακέτα, δεν αφαίρεσε την δυνατότητα άμα θέλετε (και έχετε την υπομονή) να κάνετε εγκατάσταση ένα λογισμικό από τον πηγαίο κώδικά του, έτσι και ο νέος τρόπος δεν θα αφαιρέσει την δυνατότητα εγκατάστασης deb πακέτων.  Δεν αφαιρεί δηλαδή αλλά προσθέτει.

Το ξεκαθαρίζουμε αυτό γιατί θα ακούσετε τα μύρια δύο !

Πως γίνονται εγκατάσταση τα πακέτα του Ubuntu (deb)

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

  1. Κάνε εγκατάσταση το VLC για να δούμε κανένα βιντεάκι
  2. Μισό λεπτό να το κατεβάσω, είναι 10 MB και να ελέγξω τις εξαρτήσεις
  3. Οκ… κάνε την δουλειά σου…
  4. Το VLC χρειάζεται να εγκαταστήσει πρόσθετες εξαρτήσεις 150 MB, να συνεχίσω;
  5. Ναι πασά μου… συνέχισε …
  6. Η εγκατάσταση ήταν επιτυχής
  7. Μπράβο ! Α… πού’σε κάνε και το Totem Video player εγκατάσταση, έτσι για να έχουμε μια καβάτζα.
  8. Μισό λεπτό, είναι 10 MB να τo κατεβάσω και να ελέγξω τις εξαρτήσεις
  9. Ο… Κ…
  10. Βρήκα ότι είναι ήδη εγκατεστημένες πολλές από τις εξαρτήσεις οπότε θα χρησιμοποιήσω αυτές και δεν χρειάζεται να κατεβάσω 150 MB .
  11. Περίφημα (αφού πριν εγκατέστησα το VLC … λογικό είναι) !
  12. Η εγκατάσταση ήταν επιτυχής
  13. Χμμμμ κάτι τελευταίο… βλέπω στο site του VLC ότι έχει βγει νεότερη έκδοση με χαρακτηριστικά που θέλω… να βάλω ένα PPA (εξωτερική πηγή) να μου το αναβαθμίσεις ?
  14. Ναι φυσικά… γιατί όχι…
  15. Ωραία, το έβαλα, κάνε την αναβάθμιση..
  16. Για να το αναβαθμίσω θα πρέπει να αναβαθμίσω και τις εξαρτήσεις του και μπορεί κάποιο άλλο λογισμικό να μην δουλεύει με αυτές τις εκδόσεις εξαρτήσεων, να συνεχίσω ?
  17. Τώρα…. την κάτσαμε… άστο… μόλις βγει η νέα έκδοση του Ubuntu… το βλέπουμε…

Κάπως έτσι λοιπόν βλέπουμε (με υπεραπλουστευμένο) τον τρόπο εγκατάστασης πακέτων deb στο Ubuntu. Δηλαδή από την μια έχουμε το πλεονέκτημα του μικρού μεγέθους εγκατάστασης λογισμικών μιας και επαναχρησιμοποιούν τις ήδη εγκατεστημένες βιβλιοθήκες (shared libraries) αλλά από την άλλη είδαμε το πρόβλημα που εμφανίζεται όταν θέλουμε να πάμε από μια παλιά έκδοση σε μια νεότερη.

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

Αυτό δημιουργεί πρόβλημα, από την μια στον χρήστη, που δεν μπορεί να έχει πάντα την τελευταία έκδοση του λογισμικού που θέλει (παραμένοντας φυσικά στην ίδια έκδοση λειτουργικού) και από την άλλη δημιουργεί πρόβλημα στον προγραμματιστή του λογισμικού που δεν μπορεί να στείλει νέες εκδόσεις αφού οι βιβλιοθήκες που υπάρχουν στην έκδοση του λειτουργικού του χρήστη είναι παλιότερες. Ένας φαύλος κύκλος λοιπόν.

Πως γίνονται εγκατάσταση τα πακέτα Snap του Ubuntu

Ας δούμε τώρα τι συμβαίνει όταν κάνουμε εγκατάσταση ένα snap πακέτο. (Πάλι υποθετικά τα πακέτα)

  1. Κάνε εγκατάσταση το VLC για να δούμε κανένα βιντεάκι
  2. Μισό λεπτό να το κατεβάσω είναι 200ΜΒ
  3. Οκ… κάνε την δουλειά σου…
  4. Η εγκατάσταση ήταν επιτυχής
  5. Μπράβο ! Α… πού’σε κάνε και το Totem Video player εγκατάσταση, έτσι για να έχουμε μια καβάτζα.
  6. Μισό λεπτό να τo κατεβάσω, είναι 200 MB
  7. ΟΚ.
  8. Η εγκατάσταση ήταν επιτυχής
  9. Α… βλέπω ότι έχεις βάλει την ολοκαίνουρια έκδοση και στα !!!
  10. Ε τι… μπρίκια κολλάμε ;
  11. Κάτι τελευταίο… άμα βγει νέα έκδοση τι γίνεται; Θα περιμένω αναβάθμιση όλης της διανομής για να το έχω;
  12. Όχι… το λογισμικό πάντα θα λαμβάνει αυτόματα την τελευταία διαθέσιμη έκδοση απευθείας από τον προγραμματιστή
  13. Τέλεια… αλλά τι γίνεται αν έχω παλιότερες εκδόσεις εξαρτήσεων; Μην μου «σπάσει» κάποιο άλλο λογισμικό !
  14. Εξαρτήσεις; Αυτές που χρειάζεται και στην έκδοση που τα θέλει, τα έχει ήδη στον φάκελό του και αναβαθμίζονται από τον προγραμματιστή. Κανένα άλλο λογισμικό δεν τα χρησιμοποιεί οπότε είσαι ΟΚ.
  15. Ωραία ! Αλλά θα κατεβάσεις κάθε φορά 200-400 ΜΒ για κάθε πακέτο για να αναβαθμίσεις ένα λογισμικό ;
  16. Όχι… θα κατεβάζω μόνο τα τμήματα του λογισμικού που έχουν ενημερωθεί οπότε θα είναι πολύ μικρές σε μέγεθος οι αναβαθμίσεις (Delta Updates

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

Συχνές Ερωτήσεις για τα Snap Πακέτα FAQ

 

1) Καταργείται το deb πακετάρισμα ;

Όχι. Θα υπάρχει και θα συνεχίσει να υπάρχει μιας και το Ubuntu λειτουργικό σύστημα βασίζεται στα πακέτα του Debian

2) Ποια έκδοση Ubuntu πρέπει να έχω για να τα δοκιμάσω;

Αυτή την στιγμή μόνο η 16.04 διαθέτει αυτή την δυνατότητα.

3-α) Υπάρχουν λογισμικά διαθέσιμα σε Snap για εγκατάσταση;

Όχι ακόμα. Υπάρχουν καμιά δεκαριά αλλά δεν είναι χρήσιμα στον τελικό χρήστη. Σε λίγο καιρό θα μπορούμε π.χ. να εγκαταστήσουμε τον Firefox με snap πακέτο. Επίσης θα αργήσουμε να τα δούμε στο Κέντρο λογισμικού. Αυτή την στιγμή ο μόνος τρόπος εγκατάστασης τους είναι από το τερματικό.

4) Μήπως ξανά ανακαλύπτουμε τον τροχό;

Βασικά ο φιλοσοφία αυτή της εγκατάσταση εφαρμογών που εσωκλείουν τις εξαρτήσεις του υπάρχει εδώ και χρόνια και το χρησιμοποιούν στο FreeBSD, MacOSX, Windows, Android, iOS. Ακόμα και οι εταιρίες όπως η Valve, VMware αλλά και λογισμικά επαγγελματικά όταν τις κάνουμε εγκατάσταση χρησιμοποιούν και εσωκλείουν στο ίδιο το πακέτο τους όλες τις εξαρτήσεις τους και δεν χρησιμοποιούν σχεδόν καμία βιβλιοθήκη του λειτουργικού συστήματος.

5) Τα PPA τι θα γίνουν;

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

6) Μήπως γίνεται κυλιόμενη η διανομή και δεν μας το λένε;

Όχι, κυλιόμενες γίνονται οι εφαρμογές ως ένα επίπεδο.

7) Όταν κάνω απεγκατάσταση ένα snap πακέτο, αυτό θα αφήσει τις εξαρτήσεις του στο σύστημα μου;

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

Επίλογος

Είναι αρκετά νωρίς ακόμα για να έχουμε μια πλήρη εικόνα για το πως θα πάει το εγχείρημα. Οι αντιδράσεις είναι μικτές και θα δούμε τελικά μετά από 6-7 μήνες πως θα κυλίσει το πράγμα. Φαίνεται όμως οτι οι εταιρείες και αρκετοί προγραμματιστές το βλέπουν θετικά το ζήτημα.

Αν έχετε άλλη ερώτηση … ρωτήστε να το ψάξουμε και να το προσθέσουμε στην λίστα των FAQ

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

5 thoughts on “Snap Package: Η νέα μορφή πακέτων εγκατάστασης για Ubuntu (Μέρος 1)

  1. Μερικές σκέψεις:
    Χρησιμοποιώ στο pc μου και θέλω να εγκαταστήσω 10 εφαρμογές που έχουν εξάρτηση στην Χ.Υ έκδοση της Ζ βιβλιοθήκης που έχει μέγεθος 10ΜΒ συμπιεσμένη-πακεταρισμένη, 50ΜΒ ασυμπίεστη στο δίσκο μετά την εγκατάστασή της και καταλαμβάνει 30ΜΒ στη μνήμη RAM του υπολογιστή όταν είναι φορτωμένη και χρησιμοποιείται από κάποιο άλλο πρόγραμμα.

    Με τον παραδοσιακό τρόπο εγκατάστασης όταν πάω να εγκαταστήσω την πρώτη από τις 10 εφαρμογές που την χρειάζονται, ο διαχειριστής πακέτων αυτόματα θα την κατεβάσει στην έκδοση Χ.Υ και θα την εγκαταστήσει ως διαμοιραζόμενη βιβλιοθήκη. Για την εγκατάσταση καθεμιάς από τις επόμενες 9 εφαρμογές δεν θα χρειαστεί ούτε να κατέβει, ούτε να αποσυμπιεστεί, ούτε να εγκατασταθεί στο δίσκο, αφού υπάρχει ήδη και μπορεί να χρησιμοποιηθεί ως έχει. Έτσι για τη βιβλιοθήκη αυτή χρειάζεται να κατέβουν μόνο 10ΜΒ από το διαδίκτυο, και για τις 10 εφαρμογές. Ακόμα χρειάζομαι μόνο τα 50ΜΒ στο δίσκο για τη βιβλιοθήκη αυτή, όσες εφαρμογές και αν έχω που τη χρησιμοποιούν. Τέλος, αν θέλω να εκτελέσω(τρέξω) ταυτόχρονα και τις 10 αυτές εφαρμογές, η Ζ βιβλιοθήκη θα φορτωθεί μόνο μια φορά από το δίσκο στη μνήμη, κατά την εκκίνηση της πρώτης από τις 10 εφαρμογές, και θα καταλαμβάνει ακριβώς 30MB RAM τα οποία θα χρησιμοποιούν οι 10 εφαρμογές μου.

    Με το νέο snappy τρόπο εγκατάστασης για να εγκαταστήσω τις 10 εφαρμογές που θέλω, θα πρέπει να κατεβάσω 10 πακέτα, καθένα από τα οποία θα περιέχει μια κόπια της ίδιας έκδοσης Χ.Υ της βιβλιοθήκης Ζ. Έτσι θα χρειαστεί κατεβάσω 10ΜΒ*10 = 100ΜΒ από το διαδίκτυο μόνο για τη συγκεκριμένη βιβλιοθήκη. Ακόμα η εγκατάσταση κάθε μιας εφαρμογής θα δημιουργήσει ένα αντίγραφο της βιβλιοθήκης Ζ, έκδοση Χ.Υ. Χρειάζομαι στο δίσκο μου δηλαδή 50ΜΒ*10 = 500ΜΒ για να κρατάω αντίγραφα της ίδιας έκδοσης της ίδιας βιβλιοθήκης. Τέλος αν θέλω να τρέχω ταυτόχρονα τις 10 αυτές εφαρμογές, τότε καθεμία κατά την εκκίνησή της θα φορτώσει από το δίσκο στη μνήμη του υπολογιστή τη δικιά της κόπια της βιβλιοθήκης Ζ, έκδοση Χ.Υ, καθυστερώντας αντίστοιχα κατά την εκκίνηση. Η μνήμη RAM που θα χρειαστώ μόνο για τις κόπιες της συγκεκριμένης βιβλιοθήκης ώστε να μπορούν να τρέχουν ταυτόχρονα οι 10 εφαρμογές είναι 30ΜΒ*10 = 300ΜΒ.

    Η λύση snappy σε σχέση με τον παραδοσιακό τρόπο, δηλαδή στην περίπτωσή μας έχει ως αποτέλεσμα:
    * 9 φορές μεγαλύτερο μέγεθος αρχείων για κατέβασμα, άρα περισσότερος χρόνος και bandwidth για την εγκατάσταση
    * 9 φορές περισσότερο χρόνο cpu για να αποσυμπιεστούν τα 9 επιπλέον αντίγραφα της βιβλιοθήκης κατά την εγκατάσταση
    * 9 φορές περισσότερο IO στο δίσκο για να αποθηκευτούν τα 9 επιπλέον αντίγραφα της βιβλιοθήκης κατά την εγκατάσταση
    * 9 φορές περισσότερο δεσμευμένο χώρο στο δίσκο
    * 9 φορές περισσότερο ΙΟ στο δίσκο για να φορτωθούν οι 9 επιπλέον κόπιες της βιβλιοθήκης στη μνήμη για την εκκίνηση των10 εφαρμογών
    * 9 φορές περισσότερη δεσμευμένη μνήμη όταν τρέχουν ταυτόχρονα οι 10 εφαρμογές

    Με λίγα λόγια ο ίδιος υπολογιστής γίνεται 9 φορές πιο αργός και θέλει 9 φορές περισσότερη μνήμη και χώρο στο δίσκο για να εκτελέσει τις ίδιες 10 εφαρμογές στην περίπτωση του snappy. Δεν ακούγεται και τόσο δελεαστικό… Κάποτε οι μηχανικοί λογισμικού και οι προγραμματιστές φροντίζαμε κάποιες παραμέτρους που λέγονταν αποδοτικότητα (performance) και βελτιστοποίηση (optimization) και αφορούσαν το πως θα κάνουμε τα συστήματα και τις εφαρμογές να διαχειρίζονται με έξυπνο τρόπο τους πόρους του υπολογιστή ώστε να γίνεται η μεγαλύτερη δυνατή εξοικονόμηση… Φαίνεται ότι με την ισχύ και χωρητικότητα που έχουν φτάσει σήμερα οι ηλεκτρονικές συσκευές, αυτές οι έγνοιες έχουν βγει εντελώς από το κάδρο… Σκεφτείτε όμως πόσα περισσότερα πράγματα θα μπορούσαμε να κάνουμε με τους σημερινούς υπολογιστές αν νοιαζόμασταν ακόμα έστω και σε δευτερεύοντα βαθμό με την αποδοτικότητα και την εξοικονόμηση των πόρων ή πως θα μπορούσαμε να χρησιμοποιούμε για πολύ περισσότερο χρόνο παλαιότερα μηχανήματα αντί να πετάμε στο καλάθι των αχρήστων το hardware κάθε 6 μήνες γιατί θέλουμε πλέον το διπλάσιο χώρο και επεξεργαστική ισχύ για να κάνουμε πάνω κάτω τα ίδια πράγματα…

    Αλλά ας δούμε και τι προσφέρει ο νέος τρόπος σε αντάλλαγμα:
    1. Μπορούμε να έχουμε τις νεότερες εκδόσεις εφαρμογών πολύ γρήγορα ανεξάρτητα από τις εξαρτήσεις τους και χωρίς να κινδυνεύουμε να σπάσουμε μια ήδη εγκατεστημένη εφαρμογή επειδή εγκαταστήσαμε μια νέα που αναβάθμισε κάποια κοινή βιβλιοθήκη.
    Αυτή όμως είναι μια έννοια και μια ευθύνη που μέχρι τώρα αναλάμβαναν οι προγραμματιστές και maintainers πακέτων της κάθε διανομής. Όταν βγαίνει μια νέα έκδοση μιας εφαρμογής, οι άνθρωποι της κοινότητας της διανομής μου, αυτοί που έχουν τις τεχνικές γνώσεις, αλλά και την εμπιστοσύνη της κοινότητας, ρίχνουν μια ματιά στα χαρακτηριστικά και στον κώδικα της εφαρμογής, βλέπουν τις εξαρτήσεις, πακετάρουν, δοκιμάζουν, περνάνε το πακέτο σε ένα testing αποθετήριο, εκεί δοκιμάζεται από πολύ περισσότερο κόσμο της κοινότητας και τέλος, με τη διασφάλιση της κοινότητας ότι όλα είναι ασφαλή και σωστά, περνάνε το πακέτο στα updates και φτάνει στον υπολογιστή μου. Θέλει λίγο χρόνο, αλλά τα χίλια μάτια που έχουν δει τον κώδικα, το πακέτο, τις εξαρτήσεις και το έχουν δοκιμάσει σε 1000 διαφορετικά συστήματα και συνδυασμούς εγκατεστημένων εφαρμογών εγγυώνται ότι η νέα έκδοση είναι ασφαλής για χρήση και δεν θα σπάσει το σύστημά μου. Με το νέο τρόπο, για να γλιτώσουμε χρόνο, πάμε να παρακάμψουμε όλη αυτή τη «βαβούρα» των ελέγχων και του περάσματος του κώδικα από τα έμπιστα χέρια και μάτια της της κοινότητας, και να δώσουμε τη νέα έκδοση κατευθείαν από τον κατασκευαστή στον τελικό χρήστη. Πόσο ασφαλές είναι όμως αυτό; Μήπως τελικά αφήνουμε έρμαιο τον τελικό χρήστη στα χέρια του κάθε κακόβουλου κατασκευαστή ή διανομέα επικίνδυνων snappy πακέτων, κάνοντας ταυτόχρονα πιο αργό τον υπολογιστή του, προκειμένου να μπορεί να έχει 10 μέρες νωρίτερα τη σούπερ ντούπερ ουάου νέα έκδοση μιας εφαρμογής; Και πόσο σημαντικές είναι οι βελτιώσεις και τα νέα χαρακτηριστικά της έκδοσης 3.4.4 της εφαρμογής αυτής που πρέπει να αναβαθμίσει με ταχύτητα φωτός από την 3.4.3 που έχει εγκατεστημένη;

    2. Το δεύτερο θετικό της νέας προσέγγισης είναι ότι πλέον κάθε εφαρμογή μπορεί εγκαθίσταται και να εκτελείται απομονωμένη από τις υπόλοιπες, χωρίς να τις επηρεάζει. Έτσι ένα πρόβλημα ή μια κακόβουλη παρέμβαση στο πακέτο ή στον κώδικα μιας εφαρμογής δεν μπορεί να επηρεάσει όλο το σύστημα ή άλλες εφαρμογές τόσο εύκολα όσο στην περίπτωση των διαμοιραζόμενων βιβλιοθηκών. Είναι όντως κάτι θετικό. Αλλά πραγματικά, αισθάνεστε πιο ασφαλείς με αυτό από ότι με το να γνωρίζετε ότι ο κώδικας και το πακέτο έχει περάσει από τα χέρια και τα μάτια της κοινότητας πριν φτάσει στον υπολογιστή σας; Εγώ όχι. Θα θυσιάζατε το βελτιστοποιημένο αποτέλεσμα της σύνθεσης μιας διανομής που παρέχει ασφάλεια, σταθερότητα και ταυτόχρονα εξοικονομεί πόρους και κάνει τον υπολογιστή σας να πετά για χρόνια, προκειμένου να μην χρειαστεί να περιμένετε 6 μήνες για τις νέες εκδόσεις κάποιων βιβλιοθηκών και εφαρμογών; – Γιατί σε μια διανομή οι εφαρμογές που πρέπει να ανανεώνονται συχνά (π.χ. web browser), ήδη με τον παλιό τρόπο ανανεώνονται με μεγάλη ταχύτητα (λίγα εικοσιτετράωρα) από τους μηχανικούς της διανομής, και οι διορθώσεις και τα νέα χαρακτηριστικά που είναι κρίσιμα μεταφέρονται από τις νέες εκδόσεις στις παλιότερες (backporting) ακόμα πιο γρήγορα (λίγες ώρες) –

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

      Για το πρώτο σκέλος, ναι όντως ένα από τα μεγαλύτερα μειονεκτήματα αυτής τις μεθόδου είναι το μέγεθος των λογισμικών. Ακριβώς δηλαδή όπως συμβαίνει και στο FreeBSD, Windows και MacOSΧ που τα ίδια προγράμματα είναι π.χ. 200 ΜΒ στο Linux είναι 10 MB (με τον παραδοσιακό τρόπο εγκατάστασης). Παρόλα αυτά δεν βλέπω χρήστες των Windows, MacOSΧ να παραπονιούνται για το μέγεθος των λογισμικών. Νομίζω αυτό το κομμάτι, όοοοοταν με το καλό εμφανιστούν εφαρμογές σε snap μορφή θα ξεχαστεί όταν δούνε τα πλεονεκτήματα της μεθόδου. Παρόλα αυτά δεν βλέπω, σύντομα να έχουμε την πλειάδα εφαρμογών που έχουμε σε DEB να μεταφερθούν σε snap. Πιστεύω ότι το πολύ πολύ 10-20 μεγάλες εφαρμογές θα μεταφερθούν και κυρίως οι εμπορικές. Γενικά είναι πάρα μα πάρα πολύ νωρίς.

      Η διαχείριση της μνήμης RAM είναι καθαρά δουλειά του Kernel και όχι του snap. Φυσικά όταν είναι κάτι statically linked τα πράγματα περιπλέκονται. Αυτό όμως θα το δούμε. Αυτή την στιγμή μόνο υποθετικά σενάρια μπορούμε να κάνουμε και σίγουρα θα κάνουμε λάθος να θεωρούμε ότι θα δουλεύουν με τον ίδιο τρόπο και τον παραδοσιακό τρόπο. Με άλλα λόγια δεν είναι μεγάλα deb πακέτα που περιέχουν μέσα τους τις βιβλιοθήκες και αυτά τρέχουν αντίγραφα βιβλιοθηκών στην μνήμη. Αυτό θα ήταν λάθος αρχιτεκτονικά μιας και το Snap και Snappy γεννήθηκε για να παρέχει λογισμικά για IoT και robotic συσκευές όπου η μνήμη και η ταχύτητα (real-time κάποιες φορές) είναι κρίσιμο κομμάτι λειτουργίας. Άρα είναι λάθος να σκεφτόμαστε την διαχείριση μνήμης με την DEB λογική.

      Τώρα σχετικά με τα 2 αντάλλαγμα που θέτεις. Στο 1) όπως ξέρεις με τον παραδοσιακό τρόπο η εφαρμογή φτάνει στον χρήστη αφού περάσει 3 στάδια:

      1 – Φτιάχνεται η διανομή σε μια έκδοση Χ
      2 – Φτιάχνεται κώδικας λογισμικού
      3 – Κάποιος 3ος κατεβάζει τον κώδικα και το πακετάρει για την έκδοση Χ

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

      Το αν όμως είναι σημαντικό να αναβαθμίζεται η όχι μια εφαρμογή είναι θέμα του χρήστη και ο σκοπός για τον οποίο έχει το λειτουργικό στο PC. Βλέπω όμως 2 κατηγορίες χρηστών. Η μια γκρινιάζει που δεν έχει τις τελευταίες εκδόσεις εφαρμογών και πρέπει να περιμένει την νέα έκδοση της διανομής και από την άλλη έχουμε χρήστες που λατρεύουν τις κυλιόμενες διανομές αλλά γκρινιάζουν που θα πρέπει να αναβαθμίζεται και τo λειτουργικό σύστημα με κίνδυνο να σπάσει κάτι. Φυσικά οι χρήστες της δεύτερης κατηγορίας έχουν το τεχνικό υπόβαθρό να αντιμετωπίζουν με μαεστρία τέτοια θέματα.

      Όμως εδώ μιλάμε για τον avarage Joe. Τον avarage Dev. Τον avarage επαγγελματία που θέλει το λειτουργικό σταθερό αλλά τις εφαρμογές να είναι πλήρως ενημερωμένες και upstream based. Όπως δηλαδή τα δίνει ο προγραμματιστής. Με τον παραδοσιακό Ubuntu way αυτή την στιγμή δεν γίνεται αυτό και ούτε τα PPA κατάφεραν να λύσουν αυτό το πρόβλημα.

      Τέλος για το backporting. Όσο θυμάμαι, στα τόσα χρόνια το backporting δεν έχει δουλέψει και δεν δούλεψε ποτέ στο Ubuntu. Εξαίρεση αποτελούν οι μεγάλες εφαρμογές όπως Firefox, Google κλπ που Canonical τους εμπιστεύεται και τους έχει δώσει το δικαίωμα να μπορούν να παρέχουν πάντα την τελευταία έκδοση του λογισμικού της. Επίσης δούλεψε μόνο στην περίπτωση του Ubuntu LTS που λαμβάνει αναβαθμίσεις οδηγών. Σε καμία άλλη περίπτωση δεν δούλεψε… πότε θυμάσαι να γίνονται backport χαρακτηριστικά νέων εκδόσεων του Gimp/VLC/LibreOffice κλπ σε παλιές εκδόσεις;

      Με λίγα λόγια, το snap είναι πολλά υποσχόμενο αλλά δεν θα δούμε αύριο τα οφέλη του… το μόνο που θα δούμε αύριο είναι πολύ μελάνι και θεωρίες από διάφορα site🙂 Πότε θα τα δούμε ; Λογικά σε κάνα χρόνο … μέχρι τότε αμφιβάλω αν θα δούμε πάνω από 10 εφαρμογές για απλούς χρήστες να γίνονται snaps.

      • Εγώ πάλι βλέπω να γεμίζουμε από τέτοιες εφαρμογές που θα είναι κίνδυνος θάνατος. Γιατί θα βγάζει μια εταιρεία, ή ένας προγραμματιστής, μια τέτοια εφαρμογή, θα βάζει μέσα μερικές βιβλιοθήκες και θα δουλεύει και θα το πετάει στο internet και όποιον πάρει ο χάρος.
        Και σιγά μην κάτσει να την προσαρμόσει στις βιβλιοθήκες κάθε εφαρμογής. Θα υπάρχουν στο μηχάνημα παμπάλαιες εκδόσεις βιβλιοθηκών, μια για κάθε εφαρμογή και δεν θα μπαίνει κανένας στον κόπο να τις αναβαθμίζει ακόμα και αν έχουν σοβαρά κενά ασφάλειας.
        Και θα έχουμε όλα όσα κοροϊδεύαμε στα windows γιατί κάποιοι βαριούνται να πακετάρουν σωστά μια εφαρμογή. Δεν θα έχουμε μοντέρνες εκδόσεις εφαρμογών όπως λέει η διαφήμιση. Με παλιατζούρες θα δουλεύουμε μιας και αν κάτι δουλεύει δεν το πειράζεις.

  2. Και όσο το βλέπουν περισσότεροι, βγαίνουν και άλλες αδυναμίες και κίνδυνοι με το Snap… Popular desktop Linux distro Ubuntu has potentially serious privacy flaw : http://www.networkworld.com/article/3060673/linux/popular-desktop-linux-distro-ubuntu-has-potentially-serious-privacy-flaw.html

    Και η απάντηση της Canonical: «Canonical, in a blog post responding to the issue, acknowledged that X11 «is not, in fact a secure protocol,» and that changing the way snaps work in this regard would hamstring them.» … δηλαδή δεν διαψεύδει, παραδέχεται την αδυναμία και τα ρίχνει στο X11 που… δεν είναι αρκετά ασφαλές ως πρωτόκολλο.

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

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

Λογότυπο WordPress.com

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

Φωτογραφία Twitter

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

Φωτογραφία Facebook

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

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

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

Σύνδεση με %s