RPM's worden o.a. gebruikt door Redhat, SuSE en Caldera. Het programma rpm staat voor Redhat Package Manager. Het is oorspronkelijk door RedHat ontwikkeld, maar is later ge-GNU-ed. RPM's zijn pakketjes die je vrij eenvoudig kunt installeren. Er zijn verschillende grafische frontends voor gemaakt om het nog wat makkelijker te maken, maar wij leggen hier uit hoe je rpm zelf gebruikt.
Hier volgt een overzicht van mogelijke commando's. Let op waar je de extentie rpm achter moet zetten en waar niet.
-i
. De v
en h
zorgen ervoor dat je kunt zien hoe
ver hij is met installeren (v = verbose, h = show hash symbols).
Als een pakket niet wil installeren of verwijderd wil worden,
kun je de opties --force
en --no-deps
gebruiken. Maar het kan dan goed zijn dat het programma bepaalde libraries
mist en daardoor toch niet werkt. Gebruik deze opties dus niet zomaar.
Als er in de bestandsnaam i386 staat, dan is het gecompileerd voor x86-chips, dus 386, 486 of nieuwer. Staat er i586 in, dan is het met pgcc gecompileerd, zodat het geoptimaliseerd is voor Pentium-chips. Noarch geeft aan dat het platformonafhankelijk is. Geluiden en plaatjes kunnen bijvoorbeeld op elk systeem gebruikt worden (binaries en libraries niet).
Als je een bepaald bestand nodig hebt, weet dat het in een van de RPM's op de installatie-CD moet staan, maar je hebt geen flauw in idee in welke, dan is het volgende scriptje een uitkomst:
#!/bin/sh echo search for: $2 for i in $1*; do rpm -qpl $i | grep $2 if [ $? -eq 0 ] then echo found in: echo $i echo fi done
Geef aan dit script als eerste argument de directory waarin een hoop RPM's gevonden kunnen worden en als tweede argument een (deel van de) te zoeken bestandsnaam mee. Na een tijdje zal dit script de juiste RPM aanwijzen.
Met behulp van het commando rpm -Va rpmerrors worden alle geïnstalleerde RPM's gecontroleerd. De gevonden fouten worden in het bestand rpmerrors gezet. Elke regel van de output bevat 8 karakters, gevolgd door een bestandsnaam. De 8 karakters geven aan wat er mis is met het bestand. De 8 karakters kunnen zijn:
5 MD5 Sum S Size: bestandsgrootte L Symlink T Mtime: datum van de laatste wijziging D Device U User: de eigenaar van het bestand klopt niet G Group: de groep waartoe het bestand behoort klopt niet M Mode: permissies en bestandtype (executable of niet)
Als er niets mis is dan wordt er een . (punt) neergezet. Een voorbeeld:
.M...UG. /home/ftp/lib/ld-2.1.1.so
.
Dit klopt, want vanwege veiligheidsredenen heb ik de eigenaar en de permissies
van dit bestand van de FTP-server die ik gebruik aangepast.
Het kan ook gebeuren dat een bestand niet meer aanwezig is. Dan krijg je een
melding als missing /home/ftp/bin/gzip
.
Zoals je al ziet hoeft er dus niet per se iets ergs aan de hand te zijn. RPM
controleert simpelweg of de bestanden nog net zo zijn al direct na de installatie
van het desbetreffende RPM-pakket.
Naast RPM's zijn er ook SRPM's. De s staat voor source. Die bestanden eindigen
op .src.rpm. Het is een pakket met de
source code. Als iemand een RPM maakt, dan is de binary in het pakket
afhankelijk van de versie van de libraries die de persoon geïnstalleerd
heeft. Heb je zelf een oudere versie en je weet dat dat niets of niet veel zal
uitmaken (zoals een wat oudere versie van header files), dan kun je de SRPM
downloaden en daar zelf een RPM van maken met een binary die werkt met jouw
versie van de benodigde libraries. Een SRPM compileer je met
rpm --
rebuild file.src.rpm. Is het compileren klaar,
dan wordt de RPM onder /usr/src/RPM gezet.
Gebruik liever geen RPM's van een andere distributie dan die van jou. In een aantal gevallen maakt het niks uit, maar het hoeft niet altijd helemaal goed te werken.