20 praktische voorbeelden van RPM-opdrachten in Linux

RPM (Red Hat Package Manager) is een standaard open-source en veelgebruikt hulpprogramma voor pakketbeheer voor Red Hat-gebaseerde systemen zoals CentOS, Fedora, Rocky en Alma Linux.

De rpm-pakketbeheertool stelt systeembeheerders en gebruikers in staat om softwarepakketten te installeren, bij te werken, te verwijderen, te bevragen, te verifiëren en te beheren op Unix/Linux-besturingssystemen. Deze pakketten, voorheen bekend als een .rpm-bestand, bevatten gecompileerde softwareprogramma’s en bibliotheken die nodig zijn voor de pakketten.

Dit artikel geeft 20 nuttige voorbeelden van RPM-commando’s die nuttig voor je kunnen zijn. Met behulp van deze RPM-commando’s kun je de installatie, bijwerking en verwijdering van pakketten op je Linux-systemen beheren.

RPM Feiten

Hier zijn enkele feiten over RPM (Red Hat Package Manager):

  • RPM is vrij beschikbaar en uitgebracht onder de Algemene Openbare Licentie (GPL).
  • RPM onderhoudt een database van alle geïnstalleerde pakketten, waarbij deze informatie wordt opgeslagen in de /var/lib/rpm-directory.
  • RPM dient als de primaire methode voor het installeren van pakketten op Linux-systemen. Als pakketten zijn geïnstalleerd met behulp van broncode, beheert RPM ze niet.
  • RPM werkt met .rpm-bestanden, die vitale pakketinformatie bevatten zoals de identiteit, bron, afhankelijkheden, versiegegevens en meer.

Basismodi voor RPM-commando

Hier zijn de primaire modi voor het RPM-commando:

  • Installeren – Het rpm -i commando installeert een nieuw pakket op het systeem.
  • Upgraden – Het rpm -U commando werkt een bestaand pakket bij naar een nieuwere versie.
  • Verwijderen – Het rpm -e commando verwijdert een pakket van het systeem.
  • Opvragen – Het rpm -q commando raadpleegt de RPM-database voor informatie over geïnstalleerde pakketten.
  • Controleren – Het rpm -V commando controleert de integriteit van geïnstalleerde pakketbestanden.
  • Vernieuwen – Het rpm -F commando werkt een pakket bij of installeert het alleen als het al geïnstalleerd is.
  • Database Herbouwen – Het rpm --rebuilddb commando herbouwt de RPM-database en lost databasecorruptieproblemen op.
  • GPG Sleutel Importeren – Het rpm --import commando importeert een GPG-sleutel die wordt gebruikt voor pakketondertekeningcontrole.
  • Alle Opvragen – Het rpm -qa commando geeft een lijst van alle geïnstalleerde pakketten op het systeem.
  • Bestanden Opvragen – Het rpm -ql commando geeft een lijst van alle bestanden geïnstalleerd door een specifiek pakket.
  • Documentatie Opvragen – Het rpm -qd commando geeft een lijst van documentatiebestanden die door een pakket worden geleverd.
  • Dependencies Opvragen – Het rpm -qR commando geeft een lijst van runtime-afhankelijkheden voor een pakket.
  • Query Provides – De rpm -q --provides commando geeft de mogelijkheden weer die door een pakket worden geleverd.
  • Query Requires – Het rpm -q --requires commando geeft de afhankelijkheden weer die door een pakket worden vereist.

Waar RPM-pakketten te vinden zijn

Je kunt RPM-pakketten op verschillende plaatsen vinden, afhankelijk van je Linux-distributie. Hier zijn veelvoorkomende locaties waar je alle RPM-pakketten kunt vinden en downloaden.

Vergeet niet dat u een root gebruiker moet zijn bij het installeren van pakketten in Linux, met root-rechten kunt u rpm-commando’s beheren met hun juiste opties.

1. Hoe te controleren of RPM-pakket-handtekening

Controleer altijd de PGP-handtekening van pakketten voordat u ze op uw Linux-systemen installeert en zorg ervoor dat hun integriteit en oorsprong OK zijn.

Gebruik het volgende commando met --checksig (handtekening controleren) optie om de handtekening van een pakket genaamd hardinfo te controleren.

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2. Hoe RPM-pakket te installeren

Om een RPM-softwarepakket te installeren, gebruik het volgende commando met -ivh optie, wat het rpm-pakket genaamd hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm op een Linux-systeem zal installeren.

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

Laten we de onderdelen van bovenstaand commando uitleggen:

  • -i : een pakket installeren
  • -v : uitgebreide weergave voor een aangenamer display
  • -h: druk hash-tekens (#) af om de voortgang van de installatie weer te geven.

3. Hoe afhankelijkheden van RPM-pakket te controleren vóór installatie

Stel dat u de afhankelijkheden wilt controleren voordat u een pakket installeert of bijwerkt. Gebruik bijvoorbeeld het volgende commando om de afhankelijkheden van het hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm pakket te controleren.

Het commando vraagt naar en toont de runtime-afhankelijkheden die vereist zijn door het “hardinfo” pakket, wat helpt bij het identificeren en zorgen dat alle noodzakelijke afhankelijkheden vervuld zijn voordat het pakket wordt geïnstalleerd.

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

Laten we de onderdelen van bovenstaand commando opsplitsen:

  • -q : Vraag een pakket op.
  • -p : Geef de capaciteiten weer die dit pakket aanbiedt.
  • -R : Geef de capaciteiten weer waarop dit pakket aan is gebonden.

4. Hoe RPM-pakket zonder afhankelijkheden te installeren

Om een rpm-pakket zonder afhankelijkheden te installeren, kunt u de --nodeps optie gebruiken, die een RPM-pakket forceert te installeren zonder afhankelijkheden te controleren of op te lossen.

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Het bovenstaande commando installeert het rpm-pakket met de onderdrukking van afhankelijkheidsfouten, maar als die afhankelijkheidsbestanden ontbreken, zal het programma helemaal niet werken totdat u ze installeert.

5. Hoe een geïnstalleerd RPM-pakket te controleren

Om een geïnstalleerd rpm-pakket te controleren, kunt u de -q optie gebruiken, die informatie over de geïnstalleerde versie van het pakket opvraagt en weergeeft.

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6. Hoe RPM-bestanden te vinden waar ze geïnstalleerd zijn

Om alle bestanden van een geïnstalleerde rpm-pakket te bekijken, gebruik de -ql (query list) met de rpm-opdracht.

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7. Hoe worden de meest recent geïnstalleerde RPM-pakketten weergegeven

Gebruik de volgende rpm-opdracht met -qa (query all) optie, zal lijst alle meest recent geïnstalleerde rpm-pakketten.

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8. Hoe worden alle geïnstalleerde RPM-pakketten weergegeven

Voer de volgende opdracht in om alle namen van geïnstalleerde pakketten op uw Linux-systeem te printen.

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9. Hoe een RPM-pakket bij te werken

Als we een RPM-pakket willen bijwerken, wordt de –U (upgrade) optie gebruikt. Een van de grote voordelen van het gebruik van deze optie is dat het niet alleen de nieuwste versie van elk pakket bijwerkt, maar ook de back-up van het oudere pakket behoudt, zodat in het geval dat het nieuw bijgewerkte pakket niet draait, het eerder geïnstalleerde pakket opnieuw kan worden gebruikt.

rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10. Hoe een RPM-pakket te verwijderen

Om een RPM-pakket te de-installeren, bijvoorbeeld, gebruiken we de pakketnaam hardinfo, niet de originele pakketnaam hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm. De -e (erase) optie wordt gebruikt om het pakket te verwijderen.

rpm -evv hardinfo

11. Hoe een RPM-pakket zonder afhankelijkheden te verwijderen

De --nodeps (do not check dependencies) optie verwijdert het rpm-pakket gewelddadig uit het systeem. Maar houd er rekening mee dat het verwijderen van een bepaald pakket andere werkende toepassingen kan breken.

rpm -ev --nodeps hardinfo

12. Hoe een RPM-pakket van een specifiek bestand te vinden

Laten we zeggen dat je een lijst hebt van bestanden en je wilt weten bij welk pakket deze bestanden horen. Bijvoorbeeld, het volgende commando met de -qf (query bestand) optie zal een bestand /usr/bin/htpasswd tonen dat eigendom is van het pakket httpd-tools-2.4.58-1.fc39.x86_64.

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13. Hoe Informatie van Geïnstalleerd RPM Pakket Opvragen

Laten we zeggen dat je een rpm pakket hebt geïnstalleerd en je wilt de informatie over het pakket weten. De volgende -qi (query info) optie zal de beschikbare informatie van het geïnstalleerde pakket tonen.

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.  It has online benchmarking to check your machine performance against other machines.

14. Krijg de Informatie van een RPM Pakket Voordat je het Installeert

Je hebt een pakket gedownload van het internet en wilt de informatie van een pakket weten voordat je het installeert. Bijvoorbeeld, de volgende optie -qip (query info pakket) zal de informatie van een pakket sqlbuddy tonen.

rpm -qip sqlbuddy

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. Hoe Documentatie van Geïnstalleerd RPM Pakket Opvragen

Om de lijst van beschikbare documentatie van een geïnstalleerd pakket te krijgen, gebruik het volgende commando met de optie -qdf (query document bestand) zal de handleidingen tonen die gerelateerd zijn aan het vmstat pakket.

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16. Hoe een RPM Pakket Verifiëren

Verifiëren van een pakket vergelijkt de informatie van geïnstalleerde bestanden van het pakket met de rpm-database. De -Vp (verifieer pakket) wordt gebruikt om een pakket te verifiëren.

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

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

17. Hoe alle RPM-pakketten te verifiëren

Typ het volgende commando om alle geïnstalleerde rpm-pakketten te verifiëren.

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. Hoe een RPM GPG-sleutel te importeren

Om RHEL/CentOS/Fedora-pakketten te verifiëren, moet u de GPG-sleutel importeren. Voer hiervoor het volgende commando uit. Het zal de CentOS 8-GPG-sleutel importeren.

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

19. Hoe alle geïmporteerde RPM GPG-sleutels op te lijsten

Om alle geïmporteerde GPG-sleutels in uw systeem af te drukken, gebruikt u het volgende commando.

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. Hoe een beschadigde RPM-database opnieuw op te bouwen

Soms raakt de rpm-database beschadigd en stopt alle functionaliteit van rpm en andere toepassingen op het systeem. Dus, op dit moment moeten we de rpm-database herbouwen en herstellen met behulp van het volgende commando.

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

Ter afsluiting bieden de gepresenteerde rpm-commando’s een uitgebreide gids voor het efficiënt beheren van softwarepakketten op RHEL-gebaseerde Linux-distributies.

Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/