Ubuntu rolling development release

Πως μπορούμε να έχουμε ένα Ubuntu rolling release ώστε να έχουμε πάντα τις τελευταίες εκδόσεις διαθέσιμων λογισμικών; Η διαδικασία μετατροπής μιας σταθερής έκδοση σε κυλιόμενων αναβαθμίσεων είναι απλή και γίνεται αλλάζοντας το «κανάλι αναβαθμίσεων».

Πρόλογος

Εν συντομία η διαδικασία έχει ως εξής :

tl;dr: Σε Ubuntu 15.10

  1. Παίρνουμε αντίγραφα ασφαλείας των προσωπικών αρχείων και των ρυθμίσεών που δεν θέλουμε να χάσουμε.
  2. Αφαιρούμε όλα τα PPA (άν έχουμε) με το ppa-purge.
  3. Απεγκαθιστούμε drivers που έχουμε κάνει εγκατάσταση εμείς (κάρτας γραφικών).
  4. Μετά από μια καθαρή επανεκκίνηση εκτελούμε σε τερματικό:

sudo sed -i 's/wily/devel/g' /etc/apt/sources.list
sudo apt update
sudo apt dist-upgrade

Επειδή όμως όποιος βιάζεται σκοντάφτει, πάρτε μια κούπα καφέ ή χυμό και διαβάστε παρακάτω αναλυτικά τι θέλουμε να κάνουμε με τα παραπάνω, τι μπορεί να συμβεί και τι κερδίζουμε ή χάνουμε…

Εισαγωγή

Κυλιόμενες αναβαθμίσεις ονομάζονται οι αναβαθμίσεις λογισμικών του λειτουργικού συστήματος που δεν διαθέτουν κάποιο σταθερό (χρονικά) σημείο εκδόσεων αλλά αναβαθμίζονται ασταμάτητα. Με άλλα λόγια, σε αντίθεση με τις σταθερές εκδόσεις λογισμικών που «παγώνουν» σε μια έκδοση (π.χ. έκδοση 2.0) και απλά λαμβάνουν ενημερώσεις ασφαλείας και διορθώσεων στις υφιστάμενες εκδόσεις τους (π.χ. 2.1 -> 2.2 -> 2.3 κλπ), οι κυλιόμενες αναβαθμίσεις λαμβάνουν μια συνεχόμενη ροή αναβαθμίσεων ανά τακτά διαστήματα από την μια έκδοση στην άλλη (π.χ. 2.0 -> 3.0 -> 3.1 -> 4.0).

Δύο παραδείγματα διανομών «αποκλειστικά» κυλιόμενων αναβαθμίσεων είναι το Gentoo Linux και το Arch Linux.

Κύκλος ανάπτυξης Ubuntu

Ως γνωστόν, το Ubuntu ακολουθεί έναν 6 μηνιαίο κύκλο ανάπτυξης και κάθε ένας από αυτούς έχει μία κωδική ονομασία (η τωρινή ονομάζεται Xenial). Στο τέλος κάθε εξαμήνου που ολοκληρώνεται η ανάπτυξη της, γίνεται η ελευθέρωση της ως σταθερής έκδοσης για χρήση από το ευρύτερο κοινό (υποστηρίζεται με ενημερώσεις για 9 μήνες) ενώ περίπου μια βδομάδα μετά ξεκινάει ο νέος κύκλος ανάπτυξης με μια νέα κωδική ονομασία. Κάθε δύο χρόνια και συγκεκριμένα κάθε Απρίλιο έτους με ζυγό αριθμό (2014, 2016, 2018 κλπ) εκδίδεται μια έκδοση μακράς υποστήριξης (LTS) το οποίο λαμβάνει ενημερώσεις ασφαλείας και διορθώσεις για τα επόμενα 5 χρόνια. Έτσι όσοι έχουν μια σταθερή έκδοση, μόλις γίνει διαθέσιμη η επόμενη, μπορούν να αναβαθμίσουν με μερικά κλικ ή να περιμένουν πρώτα να ολοκληρωθεί ο κύκλος ζωής/υποστήριξης της έκδοσης τους και να αναβαθμίσουν έπειτα.

Testing – development εκδόσεις

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

  • διαθέτουν νέες εκδόσεις λογισμικών
  • δοκιμάζονται νέες λειτουργίες και χαρακτηριστικά
  • είναι αρκετά σταθερά μιας και περνάνε από αυτοματοποιημένους ελέγχους πριν καταλήξουν ως αναβαθμίσεις

Συνοψίζοντας θα λέγαμε ότι το Ubuntu διαθέτει 3 τύπους εκδόσεων:

  1. Εξαμηνιαίες εκδόσεις: Καθημερινοί χρήστες
  2. Διετείς εκδόσεις: Διακομιστές και σταθμούς εργασίας
  3. Εκδόσεις ανάπτυξης: Προγραμματιστές και εθελοντές (αναφορές σφαλμάτων, μεταφραστές κλπ)

Έτσι λοιπόν, στις περιπτώσεις 1 και 2, οι εκδόσεις των λογισμικών «παγώνουν» σε μια συγκεκριμένη έκδοση (πλην ελαχίστων εξαιρέσεων όπως π.χ. ο Firefox) μέχρι να βγει η νεότερη έκδοση του λειτουργικού δηλαδή μετά από ένα εξάμηνο. Ενώ αντίθετα στην περίπτωση 3 τα λογισμικά αναβαθμίζονται διαρκώς (πλην του διαστήματος λίγο καρό πριν βγει η σταθερή έκδοση). Επομένως αν κάποιος επιθυμεί να λαμβάνει νέες εκδόσεις λογισμικών έχει τις παρακάτω επιλογές:

  1. Να χρησιμοποιεί  κάποιο εξωτερικό PPA
  2. Να αναβαθμίζει χειροκίνητα τα λογισμικά
  3. Να χρησιμοποιεί το «κανάλι ανάπτυξης» (devel)

Ενώ στην περίπτωση 1 και 2 αναβαθμίζονται μεμονωμένα στοιχεία του λειτουργικού, η 3 περίπτωση αναβαθμίζει όλο το λειτουργικό συνεχόμενα.

Ψήθηκα… αλλά λίγο επικίνδυνα δεν είναι;

Φυσικά και είναι… είπαμε είναι έκδοση ανάπτυξης ! Παρόλα αυτά η εμπειρία που έχω χρησιμοποιώντας τις εκδόσεις ανάπτυξης μπορώ να πω ότι ποτέ δεν έγινε κάτι τραγικό.

Όμως… υπάρχει ένα: όμως…

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

Όπως είπα στον πρόλογο θα πρέπει να προετοιμάσουμε το υπάρχων λειτουργικό πριν μεταβούμε μόνιμα στο κανάλι ανάπτυξης. Σε πρώτη φάση θα πρέπει να έχουμε αναβαθμίσει στην τελευταία σταθερή έκδοση του Ubuntu και να έχουμε εγκαταστήσει όλες τις διαθέσιμες ενημερώσεις. Επίσης, αν χρησιμοποιούμε κάποιον driver π.χ. της Nvidia η της AMD θα πρέπει να τον απεγκαταστήσουμε και να μην προσπαθήσουμε να τον εγκαταστήσουμε ποτέ ξανά διότι οι εκδόσεις του πυρήνα Linux στο κανάλι ανάπτυξης είναι ασύμβατες με τον driver και το μόνο που θα προκαλούν είναι προβλήματα (π.χ. μαύρη οθόνη ). Τέλος, καλό είναι να αλλάξουμε από τις ρυθμίσεις ενημερώσεων τον διακομιστή από Ελλάδα στον Κεντρικό διότι ουκ ολίγες φορές έχει συμβεί οι διακομιστές στην Ελλάδα να αντιμετωπίζουν πρόβλημα συγχρονισμού με τον κεντρικό.

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

Επίλογος

Ωραία λοιπόν κάνατε την αλλαγή και έχετε ένα Ubuntu με κυλιόμενες αναβαθμίσεις όπως ακριβώς στο Debian Unstable αλλά όταν κάνατε τις αναβαθμίσεις βλέπετε κάποια περίεργα μηνύματα όπως ότι δεν βρέθηκε το τάδε αποθετήριο και λοιπά… Αυτό είναι απόλυτα φυσιολογικό. Το Ubuntu διαθέτει 4 κατηγορίες ενημέρωσης λογισμικού:

  1. Σημαντικές ενημερώσεις ασφαλείας
  2. Προτεινόμενες ενημερώσεις (διορθώσεις σφαλμάτων λογισμικών)
  3. Προ-εκδόσεις ενημερώσεων (περιοχή δοκιμής πριν καταλήξουν στο 2)
  4. Backports (μεταφορά αναβαθμίσεων από νεότερες εκδώσεις λειτουργικού) σταθερές.

Λόγο λοιπόν της φύσης των κυλιόμενων αναβαθμίσεων το 3 και το 4 αλλά και το κανάλι Partners (extras) που διαθέτει το Ubuntu για μεγάλο χρονικό διάστημα μέσα στο εξάμηνο της ανάπτυξης είναι κλειστά οπότε είναι λογικό να εμφανίζουν σφάλματα. Σε αυτή την περίπτωση είτε να τα αγνοείτε αυτά τα μηνύματα ή μπορείτε απενεργοποιήσετε τα συγκεκριμένα αποθετήρια.

Επίσης οι εντολές για επίλυση εξαρτήσεων (apt -f install ή apt -f dist-upgrade) είναι κλασικές σε κυλιόμενων ενημερώσεων εκδόσεις.

Τελειώνοντας να αναφέρω ότι αλλάζοντας (με την εντολή στον πρόλογο) την κωδική ονομασία από την εκάστοτε έκδοση που βρίσκεται ο κύκλος ανάπτυξης στην κωδική ονομασία devel αυτοματοποιείται ουσιαστικά η μετάβαση από τον έναν κύκλο ανάπτυξης στην άλλη, κάθε φορά που ξεκινάει ένας νέος κύκλος. Με λίγα λόγια η κωδική ονομασία devel στο αρχείο sources.list είναι συντόμευση στην τρέχουσα κωδική ονομασία του κύκλου ανάπτυξης. Τυπικά μετά την αλλαγή το sources.list θα είναι όπως παρακάτω:


# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu devel main restricted
deb-src http://archive.ubuntu.com/ubuntu devel main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu devel-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu devel-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu devel universe
deb-src http://archive.ubuntu.com/ubuntu devel universe
deb http://archive.ubuntu.com/ubuntu devel-updates universe
deb-src http://archive.ubuntu.com/ubuntu devel-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu devel multiverse
deb-src http://archive.ubuntu.com/ubuntu devel multiverse
deb http://archive.ubuntu.com/ubuntu devel-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu devel-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu devel-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu devel-backports main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu devel-security main restricted
deb-src http://archive.ubuntu.com/ubuntu devel-security main restricted
deb http://archive.ubuntu.com/ubuntu devel-security universe
deb-src http://archive.ubuntu.com/ubuntu devel-security universe
deb http://archive.ubuntu.com/ubuntu devel-security multiverse
deb-src http://archive.ubuntu.com/ubuntu devel-security multiverse

## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu devel partner
deb-src http://archive.canonical.com/ubuntu devel partner

Πηγές αναφοράς:

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

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

Λογότυπο WordPress.com

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

Φωτογραφία Twitter

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

Φωτογραφία Facebook

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

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

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

Σύνδεση με %s