← Back to team overview

sslug-teknik team mailing list archive

Re: hive filer ud af rpm pakker

 


Og en hurtig en i Perl, dog ikke en oneliner, nogen der er friske?

MVH Troels.

#!/usr/bin/perl -w
# Copyright 2002-2003, Troels Liebe Bentsen <tlb@xxxxxxxxxxx>
#  License: GPLv2
# Usage: ./rpm2gzcpio.pl file-version-release.arch.rpm |gzip -d| cpio # --list
use strict;

open FILE, shift or die ("Could not open file $!\n");

my $he; my $hs; my $b;

seek(FILE, 104, 0);
read(FILE, $b, 8); ($he, $hs) = unpack("NN", $b);

if (($hs % 8) == 0) { seek(FILE, (16*$he)+$hs+8, 1); }
else { seek(FILE, (16*$he)+$hs+(8-($hs % 8))+8, 1); }

read(FILE, $b, 8); ($he, $hs) = unpack("NN", $b);
seek(FILE, (16*$he)+$hs, 1);

while(read(FILE, $b, 1024) != 0) {
        print $b;
}

close(FILE);

Kristian Vilmann wrote:
Esben Skov Pedersen wrote:

Hvis man har en rpm pakke, som man gerne vil have nogle filer ud af uden at installere den hvordan gør man så?


$ rpm2cpio < ../etherape-0.8.2-1.i386.rpm | cpio -it
[mange filer]
...
...
...
usr/share/locale/es/LC_MESSAGES/etherape.mo
usr/share/locale/fr/LC_MESSAGES/etherape.mo
usr/share/locale/nl/LC_MESSAGES/etherape.mo
usr/share/pixmaps/etherape.png

$ rpm2cpio < ../etherape-0.8.2-1.i386.rpm | cpio -idmv \ usr/share/pixmaps/etherape.png
usr/share/pixmaps/etherape.png
953 blocks

$ ls usr/share/pixmaps/etherape.png
usr/share/pixmaps/etherape.png
$

/kristian



Follow ups

References