
Rpm er normalt det irriterende format der driller med dependencies når
man forsøger at installere programmer, dette er til dels løst med programmer som apt4rpm og urpmi ( til Mandrake ), så man aldrig igen har behov for kun at skulle skrive rpm på kommandolinien. Eller har man?
Af og til kan man opleve at alle kommandoer der har fat i rpm databasen ( der normalt holder til i /var/lib/rpm ) låser fuldstændigt så man hverken kan det ene eller det andet. Dette problem kan somme tider løses ved at slå alle processer der benytter rpm databasen ned med kommandoen
killall -9 rpm
( gerne et par gange så man er sikker :-)
og derefter udføre kommandoen
rpm --rebuilddb
Det svare ca. til et filsystemcheck på et almindeligt filsystem og løser normalt eventuelle problemer med rpm-databasen.
Dette var så den ubehagelige side af rpm, men der er også mange gode.
Har man evt. et program installeret som man ikke ved hvilken pakke kommer fra, man man blot spørge rpm. ( eksempel med mpg123 ):
[jesper@luke jesper]$ rpm -qf `which mpg123`
mpg123-0.59r-16mdk
[jesper@luke jesper]$
Denne kommando var lidt snedig for f-parameteren til rpm forventer
den fulde sti til et program den har man jo ikke lyst til at lede efter hver gang, så ved at benytte kommandoen which sat i "backticks" det er den der sikker på shift på tasten skråt over å, ekspandere den selv og hælder det rigtige videre til rpm.
Så er det næste naturlige spørgsmål.. mpg123 pakken indeholdt nok
ikke kun 1 fil. Igen kan rpm svare på spørgsmålet for os:
[jesper@luke jesper]$ rpm -ql mpg123
/usr/bin/mpg123
/usr/share/doc/mpg123-0.59r
/usr/share/doc/mpg123-0.59r/BUGS
/usr/share/doc/mpg123-0.59r/CHANGES
/usr/share/doc/mpg123-0.59r/COPYING
/usr/share/doc/mpg123-0.59r/INSTALL
/usr/share/doc/mpg123-0.59r/JUKEBOX
/usr/share/doc/mpg123-0.59r/README
/usr/share/doc/mpg123-0.59r/TODO
/usr/share/doc/mpg123-0.59r/mp3license
/usr/share/man/man1/mpg123.1.bz2
[jesper@luke jesper]$
Denne kommando kræver at pakken er installeret, er pakken ikke installeret skal man i stedet angive
rpm -qip /sti/til/rpm-pakke.rpm
Dette giver da samme svar som ovenstående. Denne kommando er yderst
lækkert hvis man lige har installeret et program og ikke aner hvor det smed sine filer, især README filen som normalt indeholder mange gode
oplysninger om programmet og dets brug.
Men man er jo lidt kræsen så vil gerne lige chekke hvad der står i info af rpm pakken:
[jesper@luke jesper]$ rpm -qi mpg123
Name : mpg123 Relocations: (not relocateable)
Version : 0.59r Vendor: MandrakeSoft
Release : 16mdk Build Date: Fri 22 Feb 2002 11:11:02 PM CET
Install date: Fri 19 Apr 2002 07:44:38 AM CEST Build Host: bi.mandrakesoft.com
Group : Sound Source RPM: mpg123-0.59r-16mdk.src.rpm
Size : 209806 License: Distributable
Packager : Mandrake Linux Team
URL : http://www.mpg123.de/
Summary : MPEG audio player
Description :
Mpg123 is a fast, free and portable MPEG audio player for Unix.
It supports MPEG 1.0/2.0 layers 1, 2 and 3 ("mp3" files). For
full CD quality playback (44 kHz, 16 bit, stereo) a fast CPU
is required. Mono and/or reduced quality playback (22 kHz or
11 kHz) is possible on slow CPUs (like Intel 486).
For information on the MP3 License, please visit:
http://www.mpeg.org/
[jesper@luke jesper]$
En total liste over alle installerede rpmpakker fåes nemt med:
rpm -qa
Denne er oftest lang og kombineres normalt med grep og/eller less
rpm systemet kan også verificere at de filer der er blevet installeret er de samme som da man installerede dem med:
[root@luke root]$ rpm -V mpg123
[root@luke root]# touch `which mpg123`
[root@luke root]# rpm -V mpg123
.......T /usr/bin/mpg123
[root@luke root]#
Sidste kørsel viser at, ja, sørme den binære mpg123 har ændret timestamp, hvilket jo netop er hvad touch gør, den fortæller ligeledes hvis den har ændret størrelse eller blot checksum.
Men der er meget mere man kan få rpm til, se blot på
man rpm og http://www.rpm.org
Jesper Krogh,