To systemd-sysext
είναι ένα εργαλείο για να φτιάξεις overlay
του βασικού συστήματος. Δηλαδή πάνω στο βασικό σύστημα αρχείων βάζεις ένα ρυζόχαρτο με τις αλλαγές. Ας δούμε ένα παράδειγμα χρήσης για να καταλάβουμε τι είναι αυτό.
Στη βασική διανομή μου, που είναι το Pop OS
ήθελα να τσεκάρω το καινούργιο γραφικό περιβάλλον που φτιάχνουν. Μια τέτοια αλλαγή αν την εγκαταστήσεις μπορεί να κάνεις το σύστημα σαν ανοιγμένο σύκο. Οπότε δεν ήθελα να πειράξω το βασικό σύστημα που δεν είναι immutable. Και δεν ήθελα να κάνω τις αλλαγές μόνιμες, απλά ήθελα να ρίξω μια ματιά.
Στο
Pop OS
μπορείς να εγκαταστήσεις τοCosmic desktop
με χρήση τηςapt
αλλά πήγα με τον δύσκολο δρόμο. Και για οποίον ενδιαφέρετε δείχνει να είναι εξαιρετικό απο πλευράς ευχρηστίας και εμφάνισης ακόμα και στην κατάσταση που σήμερα είναι.
Εδώ το systemd-sysext
έρχεται να σώσει την κατάσταση. Απλά ακολούθησα τις οδηγίες και έφτιαξε ένα φάκελλο cosmic-sysext
που μετέφερα στη θέση /var/lib/extensions
. Η δομή είναι αυτή του /usr
και περιέχει τα αρχεία όπως θα ήταν αν είχαν εγκατασταθεί εκεί κανονικά.
Η μόνη διαφορά είναι ένα επιπλέον αρχείο
cat /var/lib/extensions/cosmic-sysext/usr/lib/extension-release.d/extension-release.cosmic-sysext
NAME="Cosmic DE"
VERSION=nightly-2eadc4e
ID=pop
VERSION_ID="22.04"
Ήρθε η ώρα να το ενεργοποιήσουμε:
sudo systemctl enable --now systemd-sysext
sudo systemd-sysext refresh
Πλέον μπορώ να δοκιμάσω τη συνεδρία σαν να ήταν εγκατεστημένη κανονικά.
Παρακάτω βλέπω μερικές δυνατότητες του
Αλλά το σύστημα των αρχείων έγινε ξαφνικά immutable. Δεν μπορώ πχ να κάνω αναβαθμίσεις στο λογισμικό.
Οπότε καλό θα ήταν να το απενεργοποιήσω:
sudo systemctl disable --now systemd-sysext
και να σβήσω τα αρχεία. Εναλλακτικά θα μπορούσα να τα βάλω στη θέση /run/extensions
και να σβηστούν αυτόματα στην πρώτη επανεκκίνησή. Ένας άλλος τρόπος είναι αντί για το δέντρο των αρχείων να έφτιαχνα ένα image
, αλλά αυτό δε θα το αναλύσω εδώ.
Χρήσεις
Καλά όλα αυτά, αλλά τι χρησιμότητα έχει; Κατ αρχήν κάνει το σύστημα immutable!. Ναι αλλά αν έχεις μια immutable διανομή;
-
Ακριβώς για να σκαλίσεις μια
immutable
διανομή :-)
Για παράδειγμα, να προσθέσεις εφαρμογές στοSteam OS
Adding software to the Steam Deck with systemd-sysext | The world won't listen -
Σαν εναλλακτική λύση απέναντι σε
containers
, ήflatpak
ή ταsystemd portable services
. Έτσι μπορείς να πακετάρεις μέχρι καιcli
εφαρμογές σε αντίθεση με τις άλλες λύσεις (πλην snap)
- Για προγραμματιστές που φτιάχνουν εργαλεία συστήματος ή γραφικά περιβάλλοντα όπου θέλουν να δοκιμάσουν ή να κάνουν αποσφαλμάτωση τον κώδικά τους
sudo DESTDIR=/run/extensions/systemd-test meson install -C build --quiet --no-rebuild &&
sudo systemd-sysext refresh --force
Μέχρι στιγμής καμία διανομή δεν το χρησιμοποιεί και η κύρια και καθημερινή χρήση είναι η τελευταία. Αλλά ίσως κάποια στιγμή να γίνει ένα καθημερινό εργαλείο.
Update: Η πρώτη διανομή που σχεδιάζει να το χρησιμοποιήσει είναι η BlueFin μια πειραματική διανομή βασισμένη στο Fedora Silverblue. Πηγή
Δείτε ακόμα
Κάτι παρόμοιο