Το RPM Package Manager είναι ένα εργαλείο διαχείρισης πακέτων που έχει σχεδιαστεί για εγκατάσταση, ενημέρωση, απεγκατάσταση, επαλήθευση και αίτηση προγραμμάτων
Ανακοινώθηκε το λανσάρισμα της νέας έκδοσης του διαχειριστή πακέτων «RPM 4.19», τονίζοντας τις βελτιώσεις και τις διορθώσεις που έχουν γίνει, καθώς και βελτιώσεις στο APIS, υποστήριξη, ένα νέο σύστημα μεταγλώττισης CMake, μεταξύ άλλων περαιτέρω.
Αυτήν τη στιγμή, το έργο RPM4 αναπτύσσεται από την Red Hat και χρησιμοποιείται σε διανομές όπως το RHEL (συμπεριλαμβανομένων έργων που προέρχονται από τα CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen και πολλά άλλα.
Προηγουμένως, μια ανεξάρτητη ομάδα ανάπτυξης ανέπτυξε το έργο RPM5, το οποίο δεν σχετίζεται άμεσα με το RPM4 και αυτή τη στιγμή εγκαταλείπεται (δεν έχει ενημερωθεί από το 2010).
Ένα πακέτο RPM μπορεί να περιέχει οποιονδήποτε αριθμό αρχείων. Τα περισσότερα αρχεία RPM είναι "δυαδικά RPM" (ή BRPM), τα οποία περιέχουν τη μεταγλωττισμένη έκδοση κάποιου λογισμικού. Υπάρχουν επίσης "πηγαία RPM" (ή SRPM), τα οποία περιέχουν τον πηγαίο κώδικα που χρησιμοποιείται για τη δημιουργία ενός δυαδικού πακέτου. Τα αρχεία SRPM συνήθως έχουν την επέκταση αρχείου ".src.rpm" (ή ".spm" σε συστήματα αρχείων που περιορίζονται σε 3 χαρακτήρες, όπως τα παλαιότερα DOS FAT).
Κύρια νέα χαρακτηριστικά του RPM 4.19
Σε αυτήν τη νέα έκδοση του RPM 4.19, ένα από τα πιο αξιοσημείωτα χαρακτηριστικά του είναι η προσθήκη υποστήριξης για αρχεία ".specpart" για δυναμική δημιουργία αρχείων προδιαγραφών, καθώς και η προσθήκη του " --generate-subpackages " στο find_lang.sh, το οποίο χρησιμοποιεί .specpart.
Μια άλλη αξιοσημείωτη αλλαγή σε αυτήν τη νέα έκδοση του RPM 4.19 είναι η ενσωμάτωση με τον κατάλογο λογαριασμών χρήστη του συστήματος sysusers.d για αυτόματη επεξεργασία χρηστών και ομάδων. Επιπλέον, έχει προστεθεί υποστήριξη για τη δημιουργία χρηστών και ομάδων από τα αρχεία /etc/passwd, /etc/group και sysusers.d που περιλαμβάνονται στο πακέτο.
Όσον αφορά τις βελτιώσεις υποστήριξης, ξεχωρίζουν τα εξής: προστέθηκαν επίπεδα αρχιτεκτονικής x86-64, διορθώθηκε ο τρόπος με τον οποίο παράγονται τα μοντέλα x86 στο rpmrc, άλλαξε το σύστημα δημιουργίας CMake για να αντικαταστήσει το Autotools και το fakechroot αντικαταστάθηκε με τεχνολογία container.
Μπορούμε επίσης να διαπιστώσουμε ότι η υποστήριξη για %preuntrans και %postuntrans scriptlet προστέθηκε στα αρχεία προδιαγραφών, ενώ το βοηθητικό πρόγραμμα rpmsort προστέθηκε για την ταξινόμηση των εκδόσεων του πακέτου rpm.
Επιπλέον, οι επιλογές «–nopreuntrans», «–nopostuntrans» και «–nosysusers» προστέθηκαν για την απενεργοποίηση των σεναρίων και τη δημιουργία χρηστών και ομάδων αυτόματα κατά την εγκατάσταση του πακέτου.
Άλλες αξιοσημείωτες αλλαγές σε αυτήν τη νέα έκδοση περιλαμβάνουν:
- Κάντε τις πληροφορίες χρήστη/ομάδας να λειτουργούν αξιόπιστα στο chroot
- Κάντε τα μηχανήματα rpmscript φιλικά προς το chroot
- Διορθώθηκε η παλινδρόμηση αγκίστρου προσθήκης ανά αρχείο που εισήχθη στην 4.18
- Καταργήστε το προειδοποιητικό μήνυμα inhibit lock όταν η υπηρεσία DBus δεν είναι διαθέσιμη
- Διορθώστε τα περιεχόμενα που λείπουν στο macOS
- Η συνάρτηση που σχετίζεται με το αρχείο classifierrpmfcNew() δηλώθηκε ξεπερασμένη
- Διορθώθηκε η παράβλεψη του κωδικού εξόδου των θυγατρικών σεναρίων σε περίπτωση EINTR
- Ο κωδικός ενεργοποίησης νήματος rpmioe έχει απλοποιηθεί και καθαριστεί.
- Το βοηθητικό πρόγραμμα μπλοκ %files και η γραμμή εντολών υποστηρίζουν πλέον σφαιροποίηση σε στυλ κελύφους και διαφυγή ειδικών χαρακτήρων.
- Καταργήστε ορισμένους άλλους παλιούς και περιττούς ελέγχους χρόνου διαμόρφωσης
- Διαχωρίστε τις μεταφράσεις σε ένα ξεχωριστό έργο
- Προεπιλογή σε τοπικές ρυθμίσεις C.UTF-8, επιτρέπει την επιστροφή στο C
- Οι βιβλιοθήκες εξήχθησαν ως διαμόρφωση cmake "find_package()".
- Οι συναρτήσεις rpmGlobPath(), rpmEscape() και rpmUnescape() έχουν προστεθεί στο API.
- Η παραλληλοποίηση συναρμολόγησης γίνεται τώρα λαμβάνοντας υπόψη τη μνήμη και τον χώρο διευθύνσεων.
- Προστέθηκε τεκμηρίωση ανάπτυξης στη δημιουργία τεκμηρίωσης.
- Διάφορες άλλες προσθήκες και διορθώσεις
- Για έργα που χρησιμοποιούν CMake, παρέχεται η συνάρτηση find_package(rpm).
- Διορθώθηκε ένα σφάλμα τμηματοποίησης σε ένα όρισμα χωρίς δυνατότητα αλυσίδας για μια κλήση μακροεντολής από τη Lua
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα για αυτήν τη νέα έκδοση, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.