Κυκλοφορία του αυτόνομου συστήματος πακέτων Flatpak 1.14.0

Δημοσιεύτηκε ένας νέος σταθερός κλάδος της εργαλειοθήκης Flatpak 1.14, ο οποίος παρέχει ένα σύστημα για τη δημιουργία αυτόνομων πακέτων που δεν συνδέονται με συγκεκριμένες διανομές Linux και εκτελούνται σε ειδικό κοντέινερ που απομονώνει την εφαρμογή από το υπόλοιπο σύστημα. Παρέχεται υποστήριξη για την εκτέλεση πακέτων Flatpak για Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux και Ubuntu. Τα πακέτα Flatpak περιλαμβάνονται στο αποθετήριο Fedora και υποστηρίζονται από τον εγγενή διαχειριστή εφαρμογών GNOME.

Βασικές καινοτομίες στον κλάδο Flatpak 1.14:

  • Είναι δυνατό να δημιουργήσετε έναν κατάλογο για αρχεία σε κατάσταση (.local/state) και να ορίσετε τη μεταβλητή περιβάλλοντος XDG_STATE_HOME να δείχνει σε αυτόν τον κατάλογο.
  • Προστέθηκαν έλεγχοι υπό όρους της μορφής "have-kernel-module-name" για τον προσδιορισμό της παρουσίας μονάδων πυρήνα (ένα καθολικό ανάλογο του προηγουμένως προτεινόμενου ελέγχου have-intel-gpu, αντί του οποίου η έκφραση "have-kernel-module-i915 ” μπορεί τώρα να χρησιμοποιηθεί).
  • Η εντολή “flatpak document-unexport —doc-id=…” έχει υλοποιηθεί.
  • Παρέχεται εξαγωγή μεταδεδομένων Appstream για χρήση στο κύριο περιβάλλον.
  • Προστέθηκαν κανόνες ολοκλήρωσης εντολών flatpak για το κέλυφος ψαριού
  • Επιτρέπεται η πρόσβαση δικτύου στις υπηρεσίες X11 και PulseAudio (εάν προστεθούν οι κατάλληλες ρυθμίσεις).
  • Ο κύριος κλάδος στο αποθετήριο Git έχει μετονομαστεί από "master" σε "main", καθώς η λέξη "master" θεωρείται πρόσφατα πολιτικά εσφαλμένη.
  • Τα σενάρια εκκίνησης τώρα ξαναγράφονται εάν μετονομαστεί η εφαρμογή.
  • Προστέθηκαν οι επιλογές "--include-sdk" και "--include-debug" στην εντολή εγκατάστασης για την εγκατάσταση του SDK και των αρχείων εντοπισμού σφαλμάτων.
  • Προστέθηκε υποστήριξη για την παράμετρο "DeploySideloadCollectionID" στα αρχεία flatpakref και flatpakrepo. Όταν οριστεί, το αναγνωριστικό συλλογής θα οριστεί κατά την προσθήκη ενός απομακρυσμένου αποθετηρίου και όχι μετά τη φόρτωση των μεταδεδομένων.
  • Επιτρέπεται η δημιουργία ένθετων περιβαλλόντων sandbox για χειριστές σε περιόδους σύνδεσης με ξεχωριστά ονόματα MPRIS (Προδιαγραφές απομακρυσμένης διεπαφής προγράμματος αναπαραγωγής πολυμέσων).
  • Τα βοηθητικά προγράμματα γραμμής εντολών παρέχουν πλέον πληροφορίες σχετικά με τη χρήση παρωχημένων επεκτάσεων χρόνου εκτέλεσης.
  • Η εντολή απεγκατάστασης υλοποιεί ένα αίτημα επιβεβαίωσης πριν από την κατάργηση των επεκτάσεων χρόνου εκτέλεσης ή χρόνου εκτέλεσης που εξακολουθούν να χρησιμοποιούνται.
  • Προστέθηκε υποστήριξη για την επιλογή "--socket=gpg-agent" σε εντολές όπως "flatpak run".
  • Έχει επιδιορθωθεί ένα θέμα ευπάθειας στο libostree που θα μπορούσε ενδεχομένως να επιτρέψει σε έναν χρήστη να διαγράψει αυθαίρετα αρχεία στο σύστημα μέσω χειρισμού του flatpak-system-helper handler (αποστολή αιτήματος διαγραφής με ένα ειδικά διαμορφωμένο όνομα κλάδου). Το πρόβλημα εμφανίζεται μόνο σε παλαιότερες εκδόσεις του Flatpak και του libostree που κυκλοφόρησαν πριν από το 2018 (< 0.10.2) και δεν επηρεάζει τις τρέχουσες εκδόσεις.

Να σας υπενθυμίσουμε ότι το Flatpak επιτρέπει στους προγραμματιστές εφαρμογών να απλοποιούν τη διανομή των προγραμμάτων τους που δεν περιλαμβάνονται στα τυπικά αποθετήρια διανομής, προετοιμάζοντας ένα γενικό κοντέινερ χωρίς τη δημιουργία ξεχωριστών συγκροτημάτων για κάθε διανομή. Για χρήστες που γνωρίζουν την ασφάλεια, το Flatpak σάς επιτρέπει να εκτελέσετε μια αμφισβητήσιμη εφαρμογή σε ένα κοντέινερ, παρέχοντας πρόσβαση μόνο στις λειτουργίες δικτύου και στα αρχεία χρήστη που σχετίζονται με την εφαρμογή. Για χρήστες που ενδιαφέρονται για νέα προϊόντα, το Flatpak σάς επιτρέπει να εγκαταστήσετε τις πιο πρόσφατες δοκιμαστικές και σταθερές εκδόσεις εφαρμογών χωρίς να χρειάζεται να κάνετε αλλαγές στο σύστημα. Για παράδειγμα, τα πακέτα Flatpak είναι κατασκευασμένα για LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio κ.λπ.

Για να μειωθεί το μέγεθος του πακέτου, περιλαμβάνει μόνο εξαρτήσεις για συγκεκριμένες εφαρμογές και οι βασικές βιβλιοθήκες συστήματος και γραφικών (βιβλιοθήκες GTK, Qt, GNOME και KDE, κ.λπ.) έχουν σχεδιαστεί ως τυπικά περιβάλλοντα χρόνου εκτέλεσης plug-in. Η βασική διαφορά μεταξύ του Flatpak και του Snap είναι ότι το Snap χρησιμοποιεί τα στοιχεία του κύριου περιβάλλοντος συστήματος και την απομόνωση που βασίζεται σε κλήσεις συστήματος φιλτραρίσματος, ενώ το Flatpak δημιουργεί ένα κοντέινερ ξεχωριστό από το σύστημα και λειτουργεί με μεγάλα σύνολα χρόνου εκτέλεσης, παρέχοντας όχι πακέτα ως εξαρτήσεις, αλλά τυπικά περιβάλλοντα συστήματος (για παράδειγμα, όλες οι βιβλιοθήκες που είναι απαραίτητες για τη λειτουργία προγραμμάτων GNOME ή KDE).

Εκτός από το τυπικό περιβάλλον συστήματος (runtime), που είναι εγκατεστημένο μέσω ειδικού αποθετηρίου, παρέχονται πρόσθετες εξαρτήσεις (πακέτο) που απαιτούνται για τη λειτουργία της εφαρμογής. Συνολικά, ο χρόνος εκτέλεσης και το πακέτο αποτελούν το γέμισμα του κοντέινερ, παρά το γεγονός ότι ο χρόνος εκτέλεσης εγκαθίσταται χωριστά και συνδέεται με πολλά κοντέινερ ταυτόχρονα, γεγονός που σας επιτρέπει να αποφύγετε την αντιγραφή αρχείων συστήματος που είναι κοινά στα κοντέινερ. Ένα σύστημα μπορεί να έχει εγκατεστημένους πολλούς διαφορετικούς χρόνους εκτέλεσης (GNOME, KDE) ή πολλές εκδόσεις του ίδιου χρόνου εκτέλεσης (GNOME 3.40, GNOME 3.42). Ένα κοντέινερ με μια εφαρμογή ως εξάρτηση χρησιμοποιεί μια σύνδεση μόνο σε έναν συγκεκριμένο χρόνο εκτέλεσης, χωρίς να λαμβάνει υπόψη τα μεμονωμένα πακέτα που συνθέτουν τον χρόνο εκτέλεσης. Όλα τα στοιχεία που λείπουν συσκευάζονται απευθείας με την εφαρμογή. Όταν σχηματίζεται ένα κοντέινερ, τα περιεχόμενα χρόνου εκτέλεσης προσαρτώνται ως το διαμέρισμα /usr και το πακέτο προσαρτάται στον κατάλογο /app.

Ο χρόνος εκτέλεσης και τα κοντέινερ εφαρμογών κατασκευάζονται χρησιμοποιώντας την τεχνολογία OSTree, στην οποία η εικόνα ενημερώνεται ατομικά από ένα αποθετήριο τύπου Git, το οποίο επιτρέπει την εφαρμογή μεθόδων ελέγχου έκδοσης στα στοιχεία διανομής (για παράδειγμα, μπορείτε να επαναφέρετε γρήγορα το σύστημα σε ένα προηγούμενη κατάσταση). Τα πακέτα RPM μεταφράζονται στο αποθετήριο OSTree χρησιμοποιώντας ένα ειδικό επίπεδο rpm-ostree. Δεν υποστηρίζεται ξεχωριστή εγκατάσταση και ενημέρωση πακέτων εντός του εργασιακού περιβάλλοντος· το σύστημα ενημερώνεται όχι σε επίπεδο μεμονωμένων στοιχείων, αλλά ως σύνολο, αλλάζοντας ατομικά την κατάστασή του. Παρέχει εργαλεία για την σταδιακή εφαρμογή ενημερώσεων, εξαλείφοντας την ανάγκη για πλήρη αντικατάσταση της εικόνας με κάθε ενημέρωση.

Το απομονωμένο περιβάλλον που δημιουργείται είναι εντελώς ανεξάρτητο από τη διανομή που χρησιμοποιείται και, με τις σωστές ρυθμίσεις του πακέτου, δεν έχει πρόσβαση σε αρχεία και διαδικασίες του χρήστη ή του κύριου συστήματος, δεν μπορεί να έχει άμεση πρόσβαση στον εξοπλισμό, με εξαίρεση την έξοδο μέσω DRI, και κλήσεις στο υποσύστημα δικτύου. Η έξοδος γραφικών και η οργάνωση εισόδου υλοποιούνται χρησιμοποιώντας το πρωτόκολλο Wayland ή μέσω προώθησης υποδοχής X11. Η αλληλεπίδραση με το εξωτερικό περιβάλλον βασίζεται στο σύστημα ανταλλαγής μηνυμάτων DBus και σε ένα ειδικό Portal API.

Για απομόνωση, χρησιμοποιούνται το επίπεδο Bubblewrap και οι παραδοσιακές τεχνολογίες εικονικοποίησης κοντέινερ Linux, που βασίζονται στη χρήση cgroups, namespaces, Seccomp και SELinux. Το PulseAudio χρησιμοποιείται για την έξοδο ήχου. Σε αυτήν την περίπτωση, η απομόνωση μπορεί να απενεργοποιηθεί, η οποία χρησιμοποιείται από τους προγραμματιστές πολλών δημοφιλών πακέτων για να αποκτήσουν πλήρη πρόσβαση στο σύστημα αρχείων και σε όλες τις συσκευές του συστήματος. Για παράδειγμα, τα GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity και VLC διαθέτουν περιορισμένη λειτουργία απομόνωσης που αφήνει πλήρη πρόσβαση στον οικιακό κατάλογο. Εάν τα πακέτα με πρόσβαση στον αρχικό κατάλογο παραβιάζονται, παρά την παρουσία της ετικέτας "sandboxed" στην περιγραφή του πακέτου, ο εισβολέας χρειάζεται μόνο να αλλάξει το αρχείο ~/.bashrc για να εκτελέσει τον κώδικά του. Ένα ξεχωριστό ζήτημα είναι ο έλεγχος των αλλαγών στα πακέτα και η εμπιστοσύνη στους δημιουργούς πακέτων, οι οποίοι συχνά δεν σχετίζονται με το κύριο έργο ή τις διανομές.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο