Skåne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Sitemap   Kalender   Søg
 

Hvordan finder jeg den rpm-pakke jeg mangler?

Et af de oftest stillede spørgsmål i forbindelse med Red Hat Linux er: Hvilken rpm-pakke indeholder filen XYZ?

På SSLUG's mailingliste har mange givet gode råd til svar på dette spørgsmål.
Denne løsning fremkom fra Hernik Størner, Ole Vilmann og Ole Tange en gang 1998.

Løsningen kræver et perl-script og et shell-script. Begge er ganske simple.

#!/usr/bin/perl
#
# doit
# 
while($rpm = <>) {
    chomp $rpm;
    @files=`rpm -qpl $rpm`;
    print map { $rpm ," ", $_ } @files;
}
#!/bin/sh
#
# findrpm
# 
if [ $# != 2 ]
then
    echo Usage: findrpm file-to-find /path/to/rpms
else
    find ${2}/*.rpm | /usr/local/bin/doit | grep -i $1 2>/dev/null
fi

Begge scripts kan f.eks. placeres i /usr/local/bin. Begge scripts skal selvfølgelig også være eksekverbare:

# chmod +x /usr/local/bin/doit /usr/local/bin/findrpm
#

Herefter er det muligt at finde ud af hvilken rpm-pakke, der indeholder libgpm.so:

[vilmann@supernaut ~]$ findrpm libgpm.so /cdrom/RedHat/RPMS/
/cdrom/RedHat/RPMS//gpm-1.13-8.i386.rpm /usr/lib/libgpm.so.1.13
/cdrom/RedHat/RPMS//gpm-devel-1.13-8.i386.rpm /usr/lib/libgpm.so
[vilmann@supernaut ~]$ 

En ulempe ved denne metode er, at en søgning efter make også vil give alle rpm-pakker med indhold WindowMaker, men det skulle være til at klare med grep:

# findrpm make /cdrom/RedHat/RPMS/ | grep -v WindowMaker

Happy rpm-hunting!

 
Forside   Tilmelding   Postarkiv   Sitemap   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2004-03-07, klokken 21:24 .
 
Denne side vedligeholdes af Kristian Vilmann (<kristian@sslug.dk>)