Όταν μιλάμε για Rolling Release διανομές, το μυαλό πολλών πηγαίνει αυτόματα σε bugs, αστάθεια, προβλήματα …κλπ.
Θα κάνουμε ένα διαχωρισμό εδώ, ο οποίος πρέπει να γίνεται διαφορετικά θα τα μπλέξουμε, από τις Bleeding Edge διανομές. Άλλη φιλοσοφία ακολουθούν οι μεν, άλλη οι δε.
Rolling Release:
Είναι το μοντέλο ανάπτυξης λογισμικού το οποίο παραδίδει συνεχείς αναβαθμίσεις, αντί του τυπικού μοντέλου αναβάθμισης με εκδόσεις. Το συγκεκριμένο μοντέλο ανάπτυξης δεν είναι εφεύρεση του Linux, όμως το συναντούμε συχνά σε διανομές Linux, τις λεγόμενες και Rolling Release Διανομές (πχ Arch Linux).
Semi Rolling Release:
Ακολουθεί το μοντέλο ανάπτυξης του Rolling Release, όχι όμως για το σύνολο του λογισμικού. Μια τέτοια διανομή, ως παράδειγμα για να το καταλάβουμε καλύτερα, είναι το KDE neon (Git Version). Χρησιμοποιεί ως βάση το Ubuntu 16.04 LTS, ενώ το περιβάλλον εργασίας καθώς και οι εφαρμογές που αυτό περιλαμβάνει ακολουθούν το Rolling Release μοντέλο.
Bleeding Edge:
Πάντα το τελευταίο διαθέσιμο, από τους προγραμματιστές, λογισμικό. Η τεχνολογία Bleeding Edge είναι τόσο νέα (φρέσκια) σε κυκλοφορία, που πολλές φορές θεωρείται «υψηλού κινδύνου» στο να παρουσιάσει προβλήματα, μιας και δεν έχει δοκιμαστεί αρκετά.
Είναι όμως ένα Rolling Release μοντέλο απαραίτητα και Bleeding Edge ;
Η ορθή απάντηση εδώ είναι, όχι.
Ο τρόπος παράδοσης του νέου λογισμικού, πχ με συνεχείς ενημερώσεις (rolling release), δεν σημαίνει απαραίτητα ότι το λογισμικό αυτό είναι ότι πιο «φρέσκο» (Bleeding Edge) κυκλοφορεί.
Ας σκεφτούμε λίγο τον τρόπο παράδοσης του λογισμικού στο Linux. Υπάρχουν αποθετήρια λογισμικού μέσω των οποίων ο χρήστης λαμβάνει τις ενημερώσεις. Τα αποθετήρια αυτά συνήθως (στο μεγαλύτερο ποσοστό διανομών) διαχωρίζονται σε σταθερά (stable) και δοκιμαστικά (testing, proposed).
Μια γνωστή (mainstream) διανομή που ακολουθεί αυτό το μοντέλο είναι το Arch Linux. Τα κύρια αποθετήρια του Arch, περιέχουν δοκιμασμένο λογισμικό. Όμως το Arch ακολουθεί το μοντέλο Rolling Release.
Μπορεί κάποιος εάν θέλει να ενεργοποιήσει και τα Testing αποθετήρια και έτσι θα έχει πλέον μια Bleeding Edge Rolling Release διανομή, με ότι κινδύνους αυτό εγκυμονεί.
Άλλη γνωστή διανομή είναι το openSUSE Tumbleweed. Αν και ακολουθεί το Rolling Release μοντέλο, τα πακέτα λογισμικού που παραδίδονται στους χρήστες είναι δοκιμασμένα (και όχι μια φορά μόνο).
Μια ωραία παρουσίαση για το Rolling Release Tumbleweed μπορείτε να παρακολουθήστε παρακάτω, από τη φετινή FOSDEM.
Αφού ξεκαθαρίσαμε – διαχωρίσαμε – τις δυο έννοιες, παρακάτω αναφέρω τι κάνω εγώ σε δυο από τις διανομές που έχω εγκατεστημένες (κανονικά, όχι σε VirtualBox).
Η παρακάτω διαδικασία βέβαια προϋποθέτει την ικανότητα του εκάστοτε χρήστη να επαναφέρει το σύστημά του σε λειτουργική κατάσταση, σε περίπτωση προβλήματος. Πράγμα το οποίο εδώ και έξι περίπου μήνες δεν μου έχει χρειαστεί.
Και στο Arch Linux αλλά και στο KDE neon, δυο διανομές τις οποίες δουλεύω σχεδόν καθημερινά, έχω ενεργοποιήσει τα Unattended Updates.
Κατά τη γνώμη μου είναι το «ελάττωμα» των Rolling Release διανομών, δηλαδή τι; αυτά τα συνεχόμενα, σχεδόν καθημερινά updates.
Σε ότι αφορά το Arch Linux, υπάρχει σχετικός οδηγός από τον Salih. Προσωπικά χρησιμοποιώ το «-Syuq» (Ω ναι!).
Σε ότι αφορά το KDE neon, έχω φτιάξει ένα script με όνομα maintenance, το οποίο το έχω προσθέσει επίσης ως systemd timer και εκτελείται 15 λεπτά μετά το boot για πρώτη φορά, κι έπειτα κάθε 8 ώρες.
Το script όπως φαίνεται παρακάτω:
#!/usr/bin/env bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/snap/bin
LOG=/var/log/apt/maintenance.log
echo " " >> $LOG
echo "******** $(date -R) ******** " >> $LOG
echo " " >> $LOG
echo "*************************************************" >> $LOG
echo "Full System Upgrade Results " >> $LOG
echo "*************************************************" >> $LOG
echo " " >> $LOG
### FULL UPGRADE ###
apt-get update >> $LOG
apt-get -y dist-upgrade >> $LOG
echo " " >> $LOG
echo "*************************************************" >> $LOG
echo "System CleanUp Results " >> $LOG
echo "*************************************************" >> $LOG
echo " " >> $LOG
### CLEAN ###
apt-get -y --purge autoremove >> $LOG
apt-get -y autoclean && apt-get -y clean all >> $LOG
apt-get -y purge $(dpkg -l | awk '/^rc/ { print $2 }') >> $LOG
exit 0
Το μόνο που κάνω ενίοτε, είναι να κοιτάω το αρχείο /var/log/apt/maintenance.log να βλέπω τι γίνεται.
Είναι επικίνδυνο για τη σταθερότητα του συστήματος; ναι ίσως και να είναι.
Πλέον όμως έχω «ησυχάσει» από τις συνεχείς ειδοποιήσεις για αναβαθμίσεις και έχω αυτοματοποιήσει μια διαδικασία που ειδικά στις Rolling Release διανομές πρέπει να γίνεται σχεδόν σε καθημερινή βάση.
Αφού ούτως ή άλλως θα τα κάνω που θα τα κάνω τα updates. Σοβαρά, υπάρχει κανείς που θα κάτσει να ελέγξει τα 10αδες (εκατοντάδες μερικές φορές) updates ώστε να δει αν κάποιο από αυτά θεωρείται High Risk ;
Τέλος.
Θα ήταν ωραίος και ένας οδηγός, με το πως βλέπουμε τι updates έχουμε να κάνουμε και πως μπορούμε να δούμε περισσότερες λεπτομέρειες για το κάθε πακέτο.
Ωραίος NickTux.