Πέμπτη 20 Σεπτεμβρίου 2018

Τι είναι τα Αποθετήρια Εφαρμογών και πως δουλεύουν


Πως δημιουργήθηκε η ανάγκη για αποθετήρια – αποθήκες λογισμικού ; Τι είναι τα αποθετήρια λογισμικού; Πως δουλεύουν και γιατί οι διανομές Linux εξαρτώνται τόσο πολύ από αυτές; Ας δούμε μια «καινοτομία» του Linux που προϋπήρχε 10-15 χρόνια πριν απο τα διάφορα App Store, Play Store, Windows Store κλπ., σύμφωνα με το σχετικό άρθρο από το ELLAK.GR.





Για να καταλάβουμε τι κάνει το apt (το εργαλείο εγκατάστασης εφαρμογών σε Debian/Ubuntu/Mint) ας πάμε πρώτα αρκετά χρόνια πίσω.


Εν αρχή ήταν το TGZ


Το Slackware μια από τις πρώτες διανομές σε δισκέτα είχε τα πακέτα σαν συμπιεσμένα αρχεία tgz. Η εγκατάσταση τους ήταν μια απλή διαδικασία αποσυμπίεσης. Το μόνο που θα έπρεπε να προσέξει ο κατασκευαστής του κάθε πακέτου είναι να το κάνει αρκετά μικρό ώστε να χωράει στην δισκέτα. Μετά που θα αποσυμπιέζαμε όλα τα προγράμματα, τρέχαμε κάποια σενάρια εντολών που ρυθμίζανε την διανομή.

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


Εξαρτήσεις εφαρμογών

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

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

Η βιβλιοθήκη για τον ήχο με την σειρά της μπορεί να χρησιμοποιεί μια βιβλιοθήκη για να παίζει ιντερνετικό ραδιόφωνο και η βιβλιοθήκη για το γραφικό περιβάλλον μια άλλη βιβλιοθήκη για να διαβάζει και δείχνει τα εικονίδια.

Άρα για να εγκαταστήσεις το πρόγραμμα που παίζει μουσική θα πρέπει να εγκαταστήσεις πρώτα τις βιβλιοθήκες που θέλει, αλλά και τις βιβλιοθήκες και τα προγράμματα που αυτές θέλουν, αλλά και τις βιβλιοθήκες και τα προγράμματα που οι δεύτερες αυτές βιβλιοθήκες θέλουν και πάει λέγοντας.

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

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


Τι είναι μια διανομή Linux

Μια διανομή είναι ΕΝΑ ΜΕΓΑΛΟ ΣΥΝΟΛΟ ΠΡΟΓΡΑΜΜΑΤΩΝ όλα προσεκτικά ρυθμισμένα μεταξύ τους ώστε να χρησιμοποιούν τις ίδιες βιβλιοθήκες. Τις κεντρικές βιβλιοθήκες και προγράμματα, αυτές που σχεδόν όλα τα προγράμματα απαιτούν, τις λέμε βιβλιοθήκες βάσης. Όταν αναβαθμίζουμε αυτές τις βιβλιοθήκες με καινούργιες, τότε κάνουμε αναβάθμιση της διανομής.

Γιατί να έχουμε τις βιβλιοθήκες θα ρωτήσει κανένας; Δεν μπορεί ένα πρόγραμμα να φτιαχτεί και να τις έχει ενσωματωμένες;

Ναι μπορεί να γίνει αυτό πολύ εύκολα. Τα προγράμματα που υπάρχουν στον φάκελο /sbin για παράδειγμα είναι έτσι.

Η μέθοδος αυτή όμως έχει ένα μεγάλο μειονέκτημα. Τα προγράμματα αυτά θα γίνουν πολύ μεγάλα και θα απαιτούν πολύ μνήμη στο δίσκο (σχεδόν αδιάφορο), αλλά και πολύ κεντρική μνήμη. Το μυστικό με τις βιβλιοθήκες (τις δυναμικά συνδεμένες βιβλιοθήκες τουλάχιστον) είναι ότι υπάρχουν μια φορά μόνο στην μνήμη του υπολογιστή. Αν οι βιβλιοθήκες είναι συνδεμένες στατικά, όπως στο /sbin κάθε πρόγραμμα θα έχει την δικιά του. Όσα GB μνήμη RAM και να έχεις σύντομα θα τελειώσει.

Οι δυναμικές ΒΙΒΛΙΟΘΗΚΕΣ ΕΧΟΥΝ ΤΗΝ ΘΕΣΗ ΤΟΥΣ ΣΤΟΝ ΔΙΣΚΟ ΚΑΙ ΕΙΝΑΙ ΑΛΛΟΥ ΑΠΟ ΕΚΕΙ ΠΟΥ ΕΙΝΑΙ ΤΑ ΠΡΟΓΡΑΜΜΑΤΑ. Προσοχή εδώ θέλει αν αρχίσουμε να πειράζουμε τι υπάρχει σε αυτές τις βιβλιοθήκες. Αν για παράδειγμα θέλουμε την τελευταία έκδοση του προγράμματος της μουσικής, αυτό θα θέλει καινούργιες βιβλιοθήκες, και αν το βάλουμε από ένα αποθετήριο εκτός της βασικής διανομής όπως ένα PPA μπορεί να την πατήσουμε άσχημα και να μην μπορεί μετά να εγκατασταθεί η καινούργια έκδοση του προγράμματος παρουσιάσεων.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.