20 πρακτικά παραδείγματα εντολών RPM στο Linux


Το RPM (Red Hat Package Manager) είναι ένα προεπιλεγμένο βοηθητικό πρόγραμμα ανοιχτού κώδικα και το πιο δημοφιλές βοηθητικό πρόγραμμα διαχείρισης πακέτων για συστήματα που βασίζονται σε Red Hat όπως (RHEL , CentOS και Fedora). Το εργαλείο επιτρέπει στους διαχειριστές συστήματος και στους χρήστες να εγκαταστήσουν, να ενημέρωση, απεγκατάσταση, ερώτημα, επαλήθευση ισχυρή> και διαχείριση πακέτων λογισμικού συστήματος σε λειτουργικά συστήματα Unix/Linux. Το αρχείο RPM παλαιότερα γνωστό ως .rpm, το οποίο περιλαμβάνει μεταγλωττισμένα προγράμματα λογισμικού και βιβλιοθήκες που χρειάζονται τα πακέτα. Αυτό το βοηθητικό πρόγραμμα λειτουργεί μόνο με πακέτα που βασίζονται σε μορφή .rpm.

Αυτό το άρθρο παρέχει μερικά χρήσιμα παραδείγματα εντολών 20 RPM που μπορεί να σας φανούν χρήσιμα. Με τη βοήθεια αυτών των εντολών rpm μπορείτε να καταφέρετε να εγκαταστήσετε, να ενημερώσετε, να αφαιρέσετε πακέτα στα συστήματα Linux σας.

Μερικά στοιχεία για το RPM (RedHat Package Manager)

  1. Το RPM είναι δωρεάν και κυκλοφορεί σύμφωνα με την GPL (Γενική δημόσια άδεια).
  2. Το RPM διατηρεί τις πληροφορίες όλων των εγκατεστημένων πακέτων στη βάση δεδομένων /var/lib/rpm.
  3. Το RPM είναι ο μόνος τρόπος εγκατάστασης πακέτων σε συστήματα Linux, εάν έχετε εγκαταστήσει πακέτα χρησιμοποιώντας πηγαίο κώδικα, τότε το rpm δεν θα το διαχειριστεί.
  4. Το RPM ασχολείται με αρχεία .rpm, τα οποία περιέχουν τις πραγματικές πληροφορίες για τα πακέτα, όπως: τι είναι, από πού προέρχεται, πληροφορίες εξαρτήσεων, πληροφορίες έκδοσης κ.λπ.

Υπάρχουν πέντε βασικοί τρόποι για την εντολή RPM

  1. Εγκατάσταση : Χρησιμοποιείται για την εγκατάσταση οποιουδήποτε πακέτου RPM.
  2. Κατάργηση : Χρησιμοποιείται για τη διαγραφή, την αφαίρεση ή την απεγκατάσταση οποιουδήποτε πακέτου RPM.
  3. Αναβάθμιση : Χρησιμοποιείται για την ενημέρωση του υπάρχοντος πακέτου RPM.
  4. Επαλήθευση : Χρησιμοποιείται για την επαλήθευση πακέτων RPM.
  5. Ερώτημα : Χρησιμοποιείται για αναζήτηση σε οποιοδήποτε πακέτο RPM.

Πού θα βρείτε πακέτα RPM

Παρακάτω είναι η λίστα των τοποθεσιών rpm, όπου μπορείτε να βρείτε και να κατεβάσετε όλα τα πακέτα RPM.

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

Διαβάστε επίσης:

  1. 20 Παραδείγματα εντολών YUM στο Linux
  2. 10 Παραδείγματα εντολών Wget στο Linux
  3. 30 πιο χρήσιμες εντολές Linux για διαχειριστές συστήματος

Να θυμάστε ότι πρέπει να είστε χρήστης root κατά την εγκατάσταση πακέτων στο Linux, με τα δικαιώματα root μπορείτε να διαχειριστείτε τις εντολές rpm με τις κατάλληλες επιλογές.

1. Πώς να ελέγξετε ένα πακέτο υπογραφής RPM

Ελέγχετε πάντα την υπογραφή PGP των πακέτων πριν τα εγκαταστήσετε στα συστήματα Linux και βεβαιωθείτε ότι η ακεραιότητα και η προέλευσή τους είναι OK. Χρησιμοποιήστε την ακόλουθη εντολή με την επιλογή –checksig (check signature) για να ελέγξετε την υπογραφή ενός πακέτου που ονομάζεται pidgin.

[root@tecmint]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. Πώς να εγκαταστήσετε ένα πακέτο RPM

Για την εγκατάσταση ενός πακέτου λογισμικού rpm, χρησιμοποιήστε την ακόλουθη εντολή με την επιλογή -i. Για παράδειγμα, για να εγκαταστήσετε ένα πακέτο rpm που ονομάζεται pidgin-2.7.9-5.el6.2.i686.rpm.

[root@tecmint]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing...                ########################################### [100%]
   1:pidgin                 ########################################### [100%]
Εντολή RPM και επιλογές
  1. -i : εγκαταστήστε ένα πακέτο
  2. -v : περίπλοκη για καλύτερη εμφάνιση
  3. -h: εκτυπώστε τα σημάδια κατακερματισμού καθώς αποσυσκευάζεται το αρχείο του πακέτου.

3. Πώς να ελέγξετε τις εξαρτήσεις του πακέτου RPM πριν από την εγκατάσταση

Ας υποθέσουμε ότι θα θέλατε να κάνετε έναν έλεγχο εξάρτησης πριν εγκαταστήσετε ή αναβαθμίσετε ένα πακέτο. Για παράδειγμα, χρησιμοποιήστε την ακόλουθη εντολή για να ελέγξετε τις εξαρτήσεις του πακέτου BitTorrent-5.2.2-1-Python2.4.noarch.rpm. Θα εμφανίσει τη λίστα των εξαρτήσεων του πακέτου.

[root@tecmint]# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4
python >= 2.3
python(abi) = 2.4
python-crypto >= 2.0
python-psyco
python-twisted >= 2.0
python-zopeinterface
rpmlib(CompressedFileNames) = 2.6
Εντολή RPM και επιλογές
  1. -q : Ζητήστε ένα πακέτο
  2. -p : Καταγράψτε τις δυνατότητες που παρέχει αυτό το πακέτο.
  3. -R: Καταγράψτε τις δυνατότητες από τις οποίες εξαρτάται αυτό το πακέτο..

4. Πώς να εγκαταστήσετε ένα πακέτο RPM χωρίς εξαρτήσεις

Εάν γνωρίζετε ότι όλα τα απαραίτητα πακέτα είναι ήδη εγκατεστημένα και το RPM είναι απλώς ανόητο, μπορείτε να αγνοήσετε αυτές τις εξαρτήσεις χρησιμοποιώντας την επιλογή –nodeps (nodependencies check) πριν εγκαταστήσετε το πακέτο.

[root@tecmint]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]

Η παραπάνω εντολή εγκαθιστά αναγκαστικά το πακέτο rpm αγνοώντας τα σφάλματα εξαρτήσεων, αλλά αν λείπουν αυτά τα αρχεία εξαρτήσεων, τότε το πρόγραμμα δεν θα λειτουργήσει καθόλου, μέχρι να τα εγκαταστήσετε.

5. Πώς να ελέγξετε ένα εγκατεστημένο πακέτο RPM

Η χρήση της επιλογής -q με το όνομα πακέτου, θα δείξει εάν έχει εγκατασταθεί ή όχι ένα rpm.

[root@tecmint]# rpm -q BitTorrent

BitTorrent-5.2.2-1.noarch

6. Πώς να καταχωρήσετε όλα τα αρχεία ενός εγκατεστημένου πακέτου RPM

Για να δείτε όλα τα αρχεία εγκατεστημένων πακέτων rpm, χρησιμοποιήστε την εντολή -ql (λίστα ερωτημάτων) με rpm.

[root@tecmint]# rpm -ql BitTorrent

/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console

7. Πώς να καταχωρίσετε τα πρόσφατα εγκατεστημένα πακέτα RPM

Χρησιμοποιήστε την ακόλουθη εντολή rpm με την επιλογή -qa (query all), θα εμφανίσει όλα τα πρόσφατα εγκατεστημένα πακέτα rpm.

[root@tecmint]# rpm -qa --last

BitTorrent-5.2.2-1.noarch                     Tue 04 Dec 2012 05:14:06 PM BDT
pidgin-2.7.9-5.el6.2.i686                     Tue 04 Dec 2012 05:13:51 PM BDT
cyrus-sasl-devel-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:06 PM BDT
cyrus-sasl-2.1.23-13.el6_3.1.i686             Tue 04 Dec 2012 04:43:05 PM BDT
cyrus-sasl-md5-2.1.23-13.el6_3.1.i686         Tue 04 Dec 2012 04:43:04 PM BDT
cyrus-sasl-plain-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:03 PM BDT

8. Πώς να καταχωρήσετε όλα τα εγκατεστημένα πακέτα RPM

Πληκτρολογήστε την ακόλουθη εντολή για να εκτυπώσετε όλα τα ονόματα των εγκατεστημένων πακέτων στο σύστημά σας Linux.

[root@tecmint]# rpm -qa

initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686

9. Πώς να αναβαθμίσετε ένα πακέτο RPM

Αν θέλουμε να αναβαθμίσουμε οποιοδήποτε πακέτο RPM θα χρησιμοποιηθεί η επιλογή «–U» (αναβάθμιση). Ένα από τα σημαντικότερα πλεονεκτήματα της χρήσης αυτής της επιλογής είναι ότι όχι μόνο θα αναβαθμίσει την πιο πρόσφατη έκδοση οποιουδήποτε πακέτου, αλλά θα διατηρήσει επίσης το αντίγραφο ασφαλείας του παλαιότερου πακέτου έτσι ώστε σε περίπτωση που το νεότερο αναβαθμισμένο πακέτο δεν εκτελεί το πακέτο που είχε εγκατασταθεί προηγουμένως μπορεί να χρησιμοποιηθεί ξανά.

[root@tecmint]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]

10. Πώς να αφαιρέσετε ένα πακέτο RPM

Για να απεγκαταστήσουμε ένα πακέτο RPM, για παράδειγμα χρησιμοποιούμε το όνομα πακέτου nx, όχι το αρχικό όνομα πακέτου nx-3.5.0-2.el6.centos.i686.rpm . Η επιλογή -e (διαγραφή) χρησιμοποιείται για την αφαίρεση του πακέτου.

[root@tecmint]# rpm -evv nx

11. Πώς να αφαιρέσετε ένα πακέτο RPM χωρίς εξαρτήσεις

Η επιλογή –nodeps (Μην ελέγχετε τις εξαρτήσεις) αφαιρεί αναγκαστικά το πακέτο rpm από το σύστημα. Αλλά να θυμάστε ότι η κατάργηση συγκεκριμένου πακέτου μπορεί να προκαλέσει βλάβη σε άλλες εφαρμογές που λειτουργούν.

[root@tecmint]# rpm -ev --nodeps vsftpd

12. Πώς να κάνετε ερώτημα σε ένα αρχείο που ανήκει σε ποιο πακέτο RPM

Ας υποθέσουμε ότι έχετε λίστα αρχείων και θέλετε να μάθετε ποιο πακέτο ανήκει σε αυτά τα αρχεία. Για παράδειγμα, η ακόλουθη εντολή με την επιλογή -qf (αρχείο ερωτήματος) θα σας δείξει ότι ένα αρχείο /usr/bin/htpasswd ανήκει σε πακέτο httpd-tools-2.2.15-15.el6.centos.1.i686.

[root@tecmint]# rpm -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686

13. Πώς να αναζητήσετε πληροφορίες για το εγκατεστημένο πακέτο RPM

Ας υποθέσουμε ότι έχετε εγκαταστήσει ένα πακέτο rpm και θέλετε να μάθετε τις πληροφορίες σχετικά με το πακέτο. Η ακόλουθη επιλογή -qi (πληροφορίες ερωτήματος) θα εκτυπώσει τις διαθέσιμες πληροφορίες του εγκατεστημένου πακέτου.

[root@tecmint]# rpm -qi vsftpd

Name        : vsftpd				   Relocations: (not relocatable)
Version     : 2.2.2				   Vendor: CentOS
Release     : 11.el6				   Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
Install Date: Mon 17 Sep 2012 07:55:28 PM BDT      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons           Source RPM: vsftpd-2.2.2-11.el6.src.rpm
Size        : 351932                               License: GPLv2 with exceptions
Signature   : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

14. Λάβετε τις πληροφορίες του πακέτου RPM πριν από την εγκατάσταση

Έχετε κατεβάσει ένα πακέτο από το διαδίκτυο και θέλετε να μάθετε τις πληροφορίες ενός πακέτου πριν το εγκαταστήσετε. Για παράδειγμα, η ακόλουθη επιλογή -qip (πακέτο πληροφοριών ερωτήματος) θα εκτυπώσει τις πληροφορίες ενός πακέτου sqlbuddy.

[root@tecmint]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description :
SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. Πώς να ζητήσετε την τεκμηρίωση του εγκατεστημένου πακέτου RPM

Για να λάβετε τη λίστα με τη διαθέσιμη τεκμηρίωση ενός εγκατεστημένου πακέτου, χρησιμοποιήστε την ακόλουθη εντολή με την επιλογή -qdf (αρχείο εγγράφου ερωτήματος) θα εμφανίσει τις σελίδες εγχειριδίου που σχετίζονται με το πακέτο vmstat.

[root@tecmint]# rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO

16. Πώς να επαληθεύσετε ένα πακέτο RPM

Η επαλήθευση ενός πακέτου συγκρίνει τις πληροφορίες των εγκατεστημένων αρχείων του πακέτου με τη βάση δεδομένων rpm. Το -Vp (επαλήθευση πακέτου) χρησιμοποιείται για την επαλήθευση ενός πακέτου.

[root@tecmint downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Πώς να επαληθεύσετε όλα τα πακέτα RPM

Πληκτρολογήστε την ακόλουθη εντολή για να επαληθεύσετε όλα τα εγκατεστημένα πακέτα rpm.

[root@tecmint]# rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. Πώς να εισαγάγετε ένα κλειδί RPM GPG

Για να επαληθεύσετε τα πακέτα RHEL/CentOS/Fedora, πρέπει να εισαγάγετε το κλειδί GPG. Για να το κάνετε αυτό, εκτελέστε την ακόλουθη εντολή. Θα εισάγει CentOS 6 κλειδί GPG.

[root@tecmint]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. Πώς να καταχωρήσετε όλα τα εισαγόμενα κλειδιά RPM GPG

Για να εκτυπώσετε όλα τα εισαγόμενα κλειδιά GPG στο σύστημά σας, χρησιμοποιήστε την ακόλουθη εντολή.

[root@tecmint]# rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. Πώς να δημιουργήσετε ξανά κατεστραμμένη βάση δεδομένων RPM

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

[root@tecmint]# cd /var/lib
[root@tecmint]# rm __db*
[root@tecmint]# rpm --rebuilddb
[root@tecmint]# rpmdb_verify Packages