RPM Package Manager

To RPM package manager είναι ένα ανοιχτό και ελεύθερου κώδικα σύστημα διαχείρισης πακέτων. Δημιουργήθηκε το 1997 απο τους Erik Troan και Mark Ewing με βάση τις παλαιότερες εμπειρίες που είχαν με τα συστήματα διαχείρισης πακέτων rpp, pm και pms. Το όνομα RPM το βλέπουμε και στην μόρφη αρχείου .rpm κάθως και στο ίδιο το πρόγραμμα διαχείρισης πακέτων. Προοριζόταν κυρίως για διανομές Linux. Η μορφή αρχείου είναι η βασική μορφή πακέτου της Standard Base του Linux.

Figure 1 Tο σύστημα διαχείρισης πακέτων RPM στο τερματικό.

Τα πακέτα rpm μπορούν να μεταφέρουν ένα αυθαίρετο σύνολο αρχείων. Τα περισσότερα είναι Binary-RPM (BRPM) δηλαδή δυαδικά πακέτα που περιέχουν την μεταγλωτισμένη έκδοση κάποιου λογισμικου. Υπάρχουν επίσης και τα Source-RPM (SRPM) δηλαδή πακέτα που περιέχουν τον πηγαίο κώδικα που χρησιμοποιείται για την δημιουργία δυαδικών πακέτων. Αυτά τα πακέτα ξεχωρίζουν εύκολα από τα δυαδικά, διότι έχουν μια κατάλληλη ετικέτα στην κεφαλίδα του αρχείου με αποτέλεσμα την εξαγωγή τους σε /usr/src κατά την εγκατάσταση. Τα SRPM φέρουν συνήθως την επέκταση αρχείου “.src.rpm”.

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

  • Τα πακέτα RPM μπορούν να επαληθευτούν κρυπτογραφικά με GPG και MD5
  • Αρχεία αρχικής πηγής (π.χ. tar.gz, .tar.bz2) περιλαμβάνονται στα SRPM, διευκολύνοντας την επαλήθευση
  • Ενημέρωση Δέλτα: Το PatchRPM και το DeltaRPM μπορούν σταδιακά να ενημερώνουν το λογισμικό που είναι εγκατεστημένο σε RPM[1]

Με τα πακέτα RPM έχεις την δυνατότητα να εγκαταστήσεις , να διαγραψει, να αναβαθμισεις, να επαληθευσεις και να αιτηθείς το Unix/Linux λογισμικό σου. Συλλέγονται κεντρικά σε ένα ή περισσότερα αποθετήρια στο διαδίκτο[2]

Αυτό που βοήθαει τον διαχειριστή πακέτων είναι η βάση δεδομένων RPM, που είναι αποθηκευμένη στο /var/lib/rpm. Χρησιμοποιεί το Berkeley DB ως back-end του. Ουσιαστικά είναι μια ενιαία βάση δεδομένων που περιέχει όλες τις πληροφορίες των εγκατεστημένων RPM. Δημιουργούνται πολλαπλές βάσεις δεδομένων για σκοπούς δημιουργίας ευρετηρίου, αναπαράγοντας δεδομένα για την επιτάχυνση των αιτημάτων. Η βάση δεδομένων χρησιμοποιείται για την παρακολούθηση όλων των αρχείων που αλλάζουν και δημιουργούνται όταν ένας χρήστης εγκαθιστά ένα πακέτο επιτρέποντας έτσι στον χρήστη να αντιστρέψει τις αλλαγές και να αφαιρέσει το πακέτο αργότερα εάν θελήσει. Εάν η βάση δεδομένων καταστραφεί, οι βάσεις δεδομένων ευρετηρίου μπορούν να αναδημιουργηθούν με την εντολή rpm –rebuilddb.

Figure 2: Η χρήση της ενιαίας βάσης δεδομένων RPM database .

Πηγές

  1. RPM package manager-packet types
  2. What RPM is used for
  3. RPM installation database-example in Fedora Linux