20 Praktiske eksempler på RPM-kommandoer i Linux


RPM (Red Hat Package Manager) er et standard åpen kildekode og det mest populære pakkeadministrasjonsverktøyet for Red Hat-baserte systemer som (RHEL, CentOS og Fedora). Verktøyet lar systemadministratorer og brukere installere, oppdatere, avinstallere, spørre etter, verifisere og administrere systemprogramvarepakker i Unix/Linux-operativsystemer. RPM-en tidligere kjent som .rpm-filen, som inkluderer kompilerte programvareprogrammer og biblioteker som trengs av pakkene. Dette verktøyet fungerer bare med pakker som er bygget på .rpm-format.

Denne artikkelen gir noen nyttige eksempler på 20 RPM-kommandoer som kan være nyttige for deg. Ved hjelp av disse rpm-kommandoene kan du installere, oppdatere, fjerne pakker i Linux-systemene dine.

Noen fakta om RPM (RedHat Package Manager)

  1. RPM er gratis og utgitt under GPL (General Public License).
  2. RPM beholder informasjonen om alle de installerte pakkene under /var/lib/rpm-databasen.
  3. RPM er den eneste måten å installere pakker på under Linux-systemer. Hvis du har installert pakker med kildekode, vil ikke rpm administrere den.
  4. RPM omhandler .rpm-filer, som inneholder den faktiske informasjonen om pakkene som: hva det er, hvor det kommer fra, avhengighetsinformasjon, versjonsinformasjon osv.

Det er fem grunnleggende moduser for RPM-kommando

  1. Installer: Den brukes til å installere en hvilken som helst RPM-pakke.
  2. Fjern : Den brukes til å slette, fjerne eller avinstallere enhver RPM-pakke.
  3. Oppgradering: Den brukes til å oppdatere den eksisterende RPM-pakken.
  4. Bekreft: Den brukes til å bekrefte en RPM-pakke.
  5. Spørring : Det brukes forespørsler til enhver RPM-pakke.

Hvor finner du RPM-pakker

Nedenfor er listen over rpm-sider, hvor du kan finne og laste ned alle RPM-pakker.

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

Les også:

  1. 20 YUM-kommandoer i Linux
  2. 10 Wget-kommandoeksempler i Linux
  3. 30 mest nyttige Linux-kommandoer for systemadministratorer

Husk at du må være root-bruker når du installerer pakker i Linux, med root-privilegiene kan du administrere rpm-kommandoer med passende alternativer.

1. Hvordan sjekke en RPM-signaturpakke

Sjekk alltid PGP-signaturen til pakker før du installerer dem på Linux-systemene dine, og sørg for at integriteten og opprinnelsen er OK. Bruk følgende kommando med alternativet –checksig (sjekk signatur) for å sjekke signaturen til en pakke kalt pidgin.

 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. Hvordan installere en RPM-pakke

For å installere en rpm-programvarepakke, bruk følgende kommando med -i-alternativet. For eksempel for å installere en rpm-pakke kalt pidgin-2.7.9-5.el6.2.i686.rpm.

 rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

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

  1. -i : installer en pakke
  2. -v : detaljert for en bedre visning
  3. -h: skriv ut hash-merker når pakkearkivet pakkes ut.

3. Hvordan sjekke avhengighetene til RPM-pakken før installasjon

La oss si at du vil gjøre en avhengighetssjekk før du installerer eller oppgraderer en pakke. Bruk for eksempel følgende kommando for å sjekke avhengighetene til BitTorrent-5.2.2-1-Python2.4.noarch.rpm-pakken. Den vil vise listen over avhengigheter til pakken.

 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

  1. -q: Spør etter en pakke
  2. -p : Liste funksjoner som denne pakken gir.
  3. -R: Liste funksjoner som denne pakken avhenger av..

4. Hvordan installere en RPM-pakke uten avhengigheter

Hvis du vet at alle nødvendige pakker allerede er installert og RPM bare er dumt, kan du ignorere disse avhengighetene ved å bruke alternativet –nodeps (ingen avhengighetssjekk) før du installerer pakken.

 rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

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

Kommandoen ovenfor installerer kraftig rpm-pakken ved å ignorere avhengighetsfeil, men hvis disse avhengighetsfilene mangler, vil ikke programmet fungere i det hele tatt før du installerer dem.

5. Hvordan sjekke en installert RPM-pakke

Å bruke -q-alternativet med pakkenavn, vil vise om en rpm er installert eller ikke.

 rpm -q BitTorrent

BitTorrent-5.2.2-1.noarch

6. Hvordan liste alle filene til en installert RPM-pakke

For å se alle filene til en installert rpm-pakke, bruk -ql (spørringsliste) med rpm-kommandoen.

 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. Hvordan liste opp nylig installerte RPM-pakker

Bruk følgende rpm-kommando med -qa (spør alle) alternativet, vil vise alle de nylig installerte rpm-pakkene.

 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. Slik viser du alle installerte RPM-pakker

Skriv inn følgende kommando for å skrive ut alle navnene på installerte pakker på Linux-systemet.

 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. Hvordan oppgradere en RPM-pakke

Hvis vi ønsker å oppgradere en RPM-pakke vil –U (oppgradering) alternativet bli brukt. En av de største fordelene med å bruke dette alternativet er at det ikke bare vil oppgradere den nyeste versjonen av en hvilken som helst pakke, men det vil også opprettholde sikkerhetskopien av den eldre pakken slik at i tilfelle hvis den nyere oppgraderte pakken ikke kjører den tidligere installerte pakken kan brukes igjen.

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

10. Slik fjerner du en RPM-pakke

For å avinstallere en RPM-pakke bruker vi for eksempel pakkenavnet nx, ikke det originale pakkenavnet nx-3.5.0-2.el6.centos.i686.rpm. Alternativet -e (slett) brukes til å fjerne pakken.

 rpm -evv nx

11. Hvordan fjerne en RPM-pakke uten avhengigheter

Alternativet –nodeps (Ikke sjekk avhengigheter) fjerner kraftig rpm-pakken fra systemet. Men husk å fjerne en bestemt pakke kan ødelegge andre fungerende applikasjoner.

 rpm -ev --nodeps vsftpd

12. Hvordan spørre etter en fil som tilhører hvilken RPM-pakke

La oss si at du har en liste over filer og du vil finne ut hvilken pakke som tilhører disse filene. For eksempel vil følgende kommando med -qf (query file)-alternativet vise deg en fil /usr/bin/htpasswd eies av pakken httpd-tools-2.2.15-15.el6.centos.1.i686.

 rpm -qf /usr/bin/htpasswd

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

13. Hvordan spørre etter informasjon om installert RPM-pakke

La oss si at du har installert en rpm-pakke og vil vite informasjonen om pakken. Følgende -qi (forespørselsinfo)-alternativet vil skrive ut den tilgjengelige informasjonen om den installerte pakken.

 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. Få informasjonen om RPM-pakken før du installerer

Du har lastet ned en pakke fra internett og vil vite informasjonen om en pakke før du installerer. For eksempel vil følgende alternativ -qip (forespørselsinfopakke) skrive ut informasjonen til en pakke sqlbuddy.

 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. Hvordan spørre etter dokumentasjon for installert RPM-pakke

For å få listen over tilgjengelig dokumentasjon for en installert pakke, bruk følgende kommando med alternativet -qdf (søkedokumentfil) vil vise manualsidene relatert til vmstat-pakken.

 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. Hvordan verifisere en RPM-pakke

Ved å bekrefte en pakke sammenlignes informasjon om installerte filer i pakken med rpm-databasen. -Vp (verify package) brukes til å bekrefte en pakke.

 rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

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

17. Hvordan verifisere alle RPM-pakker

Skriv inn følgende kommando for å bekrefte alle de installerte rpm-pakkene.

 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. Slik importerer du en RPM GPG-nøkkel

For å bekrefte RHEL/CentOS/Fedora-pakker, må du importere GPG-nøkkelen. For å gjøre det, utfør følgende kommando. Den vil importere CentOS 6 GPG-nøkkel.

 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. Slik viser du alle importerte RPM GPG-nøkler

For å skrive ut alle importerte GPG-nøklene i systemet ditt, bruk følgende kommando.

 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. Hvordan gjenoppbygge ødelagt RPM-database

Noen ganger blir rpm-databasen ødelagt og stopper all funksjonaliteten til rpm og andre applikasjoner på systemet. Så på det tidspunktet må vi gjenoppbygge rpm-databasen og gjenopprette den ved hjelp av følgende kommando.

 cd /var/lib
 rm __db*
 rpm --rebuilddb
 rpmdb_verify Packages