Μιας και το Arch Linux λαμβάνει καθημερινά αναβαθμίσεις το συστήματος, είναι εξαιρετικά βολικό όταν το ρυθμίζουμε να κάνει αυτόματα την λήψη τους στο παρασκήνιο.

Εισαγωγή

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

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

Advertisements

Αυτό συμβαίνει για δύο βασικούς λόγους:

  1. Ένας τέτοιος μηχανισμός παραβαίνει την φιλοσοφία KISS του Arch μιας και προσθέτει μια επιπλέον και απρόβλεπτη πολυπλοκότητα στο σύστημά του
  2. Παρότι οι αναβαθμίσεις είναι σταθερές εκδόσεις (όχι πειραματικές αλλά ούτε καν εκδόσεις x.0 ) εντούτοις εγκυμονούν κινδύνους σε περιπτώσεις μεγάλων αναβαθμίσεων, διακοπής ρεύματος, σφάλματα στην λήψη κ.α.

Σε αντίθεση με άλλες διανομές όπου οι ενημερώσεις είναι απλά διορθώσεις στα υπάρχοντα λογισμικά και μπορούμε με ασφάλεια να ενεργοποιήσουμε αυτόματες εγκαταστάσεις ενημερώσεων (όπως π.χ. στο Ubuntu / Debian /Mint κλπ) στο Arch κάτι τέτοιο δεν συστήνεται. Παρόλα αυτά μπορεί να γίνει ρύθμιση, ώστε να γίνεται αυτόματα η λήψη τους χωρίς απαραίτητα και η εγκατάστασή τους.

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

Δημιουργία υπηρεσίας SystemD για τον έλεγχο και λήψη αναβαθμίσεων.

Πρώτα θα δημιουργήσουμε την υπηρεσία ελέγχου και λήψης αναβαθμίσεων του Arch και έπειτα θα δημιουργήσουμε την υπηρεσία που θα το εκτελεί ανά τακτά διαστήματα.

sudo nano /etc/systemd/system/autoupgrade.service

έπειτα στο αρχείο autoupgrade.service που θα ανοίξει κάνουμε επικόλληση τα παρακάτω:

[Unit]
Description=Αυτόματη λήψη αναβαθμίσεων
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/pacman -Syuwq --noconfirm
TimeoutStopSec=180
KillMode=process
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

Αποθηκεύουμε και κλείνουμε το αρχείο.

Το παραπάνω με λίγα λόγια ελέγχει αν υπάρχει σύνδεση στο διαδίκτυο και έπειτα εκτελεί pacman -Syuwq –noconfirm. Το μόνο που μένει τώρα είναι να φτιάξουμε την υπηρεσία που θα εκτελεί ανά τακτά διαστήματα την autoupgrade.service:

sudo nano /etc/systemd/system/autoupgrade.timer

έπειτα στο αρχείο autoupgrade.timer που θα ανοίξει κάνουμε επικόλληση τα παρακάτω:

[Unit]
Description=Αυτόματος έλεγχος αναβαθμίσεων
[Timer]
OnBootSec=5min
OnUnitActiveSec=120min
Unit=autoupgrade.service

[Install]
WantedBy=multi-user.target

Αποθηκεύουμε και κλείνουμε το αρχείο.

Το παραπάνω με λίγα λόγια περιμένει να ολοκληρωθεί η εκκίνηση του συστήματος και έπειτα από 5 λεπτά (OnBootSec=5min) ελέγχει για πρώτη φορά την διαθεσιμότητα η μη των αναβαθμίσεων του Arch εκκινώντας την υπηρεσία autoupgrade.service (Unit=autoupdate.service). Έπειτα για όσο διάστημα φυσικά είναι ανοιχτός ο υπολογιστής, επαναλαμβάνει την διαδικασία εκτέλεσης του autoupgrade.service κάθε 2 ώρες (OnUnitActiveSec=120min).

Εσείς, φυσικά μπορείτε να «πειράξετε» τους χρόνους που αναφέρω κατά το δοκούν.

Advertisements

Ενεργοποίηση, Έλεγχος και απενεργοποίηση της υπηρεσίας.

automates-anavathmiseis-archlinux

Για να ενεργοποιήσουμε την υπηρεσία ώστε να εκτελείται με κάθε εκκίνηση του υπολογιστή μας, δίνουμε:

sudo systemctl enable autoupgrade.timer

Τώρα κάντε μια επανεκκίνηση το σύστημά σας. Έπειτα, αφού ολοκληρωθεί η εκκίνηση του συστήματος μπορείτε να ελέγξετε την κατάστασή του, δίνοντας:

sudo systemctl status autoupgrade.timer

όπως επίσης και την κατάσταση και τα μηνύματα του ίδιου του autoupgrade.service

sudo systemctl status autoupgrade.service

Εάν για κάποιο λόγο επιθυμείτε να απενεργοποιήσετε την υπηρεσία τότε απλά δίνετε :

sudo systemctl disable autoupgrade.timer

και έπειτα το σταματάτε με :

sudo systemctl stop autoupgrade.timer

Επίλογος

Όπως είδαμε, είναι πολύ απλό να δημιουργήσουμε μια υπηρεσία που θα κάνει αυτόματη λήψη των αναβαθμίσεων στο Arch. Ο προσεκτικός παρατηρητής θα δει οτι όλη η «μαγική εντολή που κάνει την δουλειά είναι η γραμμή :

ExecStart=/usr/bin/pacman -Syuwq --noconfirm

στο αρχείο autoupgrade.service. Αν, ο αναγνώστης επιθυμεί αντί απλά να γίνετε λήψη να γίνεται και ταυτόχρονα και εγκατάσταση αυτών τον αναβαθμίσεων τότε απλά αλλάζει την παράμετρο «-Syuwq» σε «-Syuq». ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ δεν το συστήνω διότι πολύ απλά αν πάει κάτι στραβά, θα έχετε ένα σύστημα που δεν ξεκινάει !