Gebruiker:Eg-T2g/pijplijn

Het RPM-programma bewerken

De RPM-programma rpm heeft veel opties en kan op talloze manieren toegepast worden. Via de rpm-applicatie kan software geïnstalleerd en verwijderd worden en met deze applicatie kan in de database naar informatie over de geïnstalleerde software gezocht worden. De aanroep heeft een vorm die eruit ziet als:

gebruiker@laptop ~ $ rpm {-o|--optie} [meer opties] [...] <...>

Over het algemeen worden rpm-opdrachten zelden door gebruikers uitgevoerd. Enkele opties kunnen voor softwareontwikkelaars, systeembeheerders en gewone gebruikers echter erg handig zijn, zoals de opties voor zoeken van geïnstalleerde pakketten in de database, het vinden van de locatie van configuratiefiles en voor de controle van de inhoud van de database.

Zoekfunctie bewerken

De zoekfunctie van rpm wordt geactiveerd met de zoekoptie -q of --query. De eenvoudigste zoekopdracht luidt:

gebruiker@laptop ~ $ rpm -q pakketnaam

Met deze zoekopdracht wordt gekeken of een pakket met de naam pakketnaam op het systeem geïnstalleerd is en of de naam pakketnaam in de database opgeslagen is. Als er geen pakket met de naam pakketnaam in de database gevonden wordt dan geven alle rpm-opdrachten de melding:

package pakketnaam is not installed

Pakketinformatie bewerken

Met de toevoeging van de informatie-optie -i of --info, aan de zoekfunctie wordt alle informatie over herkomst en de opbouw van een pakket afgedrukt.

gebruiker@laptop ~ $ rpm -qi grep

In de uitvoer wordt alle informatie van het pakket afgedrukt over de herkomst van de broncode, de versie, de compilatie, de URL van de machine waarop het pakket gecompileerd is, het tijdstip van compilatie, de checksum, etc.:

Versies bewerken

De zoekopdracht naar een pakketnaam geeft aan welke versies van een geïnstalleerd pakket op het systeem aanwezig zijn, zoals van de kernel in dit voorbeeld:

gebruiker@laptop ~ $ rpm -q kernel

De uitvoer van deze opdracht:

kernel-3.4.19-5.fc14.i686
kernel-3.6.7-5.fc14.i686
kernel-3.6.9-1.fc14.i686

vermeldt dat er drie versies van de kernel op het systeem geïnstalleerd zijn.

Bronpakket bewerken

Vaak wil men weten uit welk rpm-pakket een bestand of toepassing afkomstig is. Het bronpakket van een bestand wordt weergegeven door de -f-optie of --file-optie aan de zoekfunctie toe te voegen. De opdracht:

gebruiker@laptop ~ $ rpm -qf $(which Xorg)

laat zien dat de Xorg-server uit het pakket xorg-x11-server-Xorg afkomstig is.

Documentatie bewerken

Met de toevoeging van de optie, -d of --docfiles, aan de zoekfunctie worden de namen afgedrukt van alle documentatiebestanden in een pakket. Deze lijst wordt voor rpm afgedrukt door de opdracht:

gebruiker@laptop ~ $ rpm -qd rpm

Bestandslijst bewerken

Met de toevoeging van de lijstoptie, -l of --list, aan de zoekfunctie worden de namen afgedrukt van alle bestanden en directories die door de toepassingen uit een pakket aangemaakt zijn. Deze lijst wordt voor rpm afgedrukt door de opdracht:

gebruiker@laptop ~ $ rpm -ql rpm

De hoeveelheid uitvoer die door deze zoekopdacht wordt afgedrukt kan groot zijn. In de uitvoer van bovenstaande opdracht is onder andere de locatie van de RPM-database terug te vinden:

...
/var/lib/rpm
/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filedigests
...

Configuratie bewerken

Met de toevoeging van de optie -c of --configfiles aan de zoekfunctie worden de locaties van configuratiebestanden afgedrukt:

gebruiker@laptop ~ $ rpm -qc bash

Voor de bash-shell zijn volgens de bovenstaande opdracht drie configuratiebestanden aangemaakt:

/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc

Vereisten bewerken

gebruiker@laptop ~ $ rpm -q --requires pakketnaam

Ondersteuning bewerken

gebruiker@laptop ~ $ rpm -q --provides pakketnaam

Volledige lijsten bewerken

Een zoekopdracht voor alle pakketten kan uitgevoerd worden door de optie -a toe te voegen. Omdat de volledige lijst met pakketten lang is kost het uitvoeren van zoekopdrachten met de -a-optie meestal vrij veel tijd. Daarom kan de uitvoer het best opgeslagen worden in een tijdelijk bestand. De volledige lijst met de namen van geïnstallerde pakketten wordt afgedrukt en opgeslagen in het bestand tmp, met de opdracht:

gebruiker@laptop ~ $ rpm -qa --last > tmp

Een lijst met ... wordt in het bestand tmp opgeslagen met de opdracht:

gebruiker@laptop ~ $ rpm -qa --conflicts > tmp

Controlefunctie bewerken

gebruiker@laptop ~ $ sudo rpm -Va > tmp
...
missing     /var/run/pptp
S.5....T.  c /etc/logrotate.conf
S.5....T.    /usr/lib/python2.7/sysconfig.pyc
.M.......    /var/run/gdm
missing     /var/run/gdm/greeter
.M.......    /sys
missing     /var/log/sssd
...

SM5DLUGT

  • S - verschil in grootte (size)
  • M - verschil in mode
  • 5 - verschil in MD5 checksum
  • D - verschil in versienummer
  • L - verschil in link
  • U - verschil in gebruiker/eigenaar (user)
  • G - verschil in groep (group)
  • T - verschil in tijdstempel (timestamp)

Andere toepassingen bewerken

  • rpm -i naam.src.rpm installeert broncode
  • rpm -F [optie] [...] <...>
  • rpm -U [optie] [...] <...>
  • rpm -e pakketnaam verwijdert een pakket