Με την έλευση του 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 για εγκατάσταση εφαρμογών