View Single Post

   
  #8 (permalink)  
Old 01-17-2008, 05:32 PM
Michael Heiming
 
Posts: n/a
Default Re: Problem with rpm - seg fault

RRB <removethis.basv@removethis.gmx.at> wrote:
> Nico Kadel-Garcia wrote:
> ...
> >>>>In this case the problem of execution of newer software remains, and
> >>>>more, there's really no way, without reinstalling, to update libraries?

> ...
> >
> > I got a present for you. It's called "rpm2cpio", and it should be able to
> > strip the contents of an RPM into a cpio file. You can even run it from an
> > installation CD. Then, you can use cpio to extract the files from the cpio
> > file and install them in place on your root file system to replace your old
> > version of RPM. *THEN* you use the new rpm binaries to rpm update rpm
> > package itself, and you should be cooking with gas.
> >
> > Ran into this updating a RedHat 7.1 system to Fedora by hand. It was
> > painful, but possible.


> Hmmm, that sounds interesting.
> I've heard before of rpm2cpio but never used it, as far as i remember...
> Will give it a try, (first i have to find -on rpmfind perhaps- e newer
> rpm version that fits)...


Here's another present for you , useful if dealing with
uninstalled rpm packages.

#!/bin/bash
#
# Name: rpmget.sh
# Verbrecher: Michael Heiming <michael@FUCKallSPAMMERheiming.de>
# Date: 2003-01-09
#
# Function: List or extract one or multipe packages
# from uninstalled rpm package
#

RPMFILE=${1}
PAT=${2}
pgm="rpmget.sh"
version="1.1"
last_mod="2003-02-18"
authorinfo="Michael Heiming <michael@FUCKallSPAMMERheiming.de>"
copyright="Distrib.: GPL"
intro="$pgm ver $version $last_mod $authorinfo $copyright\n
\tExtract one ore more matching file(s) from an uninstalled rpm
package\n"
usage="Usage: $pgm <rpmfile> [<string-to-match>][-l][-h]\n"

if ! ( which rpm2cpio > /dev/null )
then
echo "rpm2cpio not found, fix your broken system!"
exit 1
fi

RPMCPIO=`which rpm2cpio`

if [ $# -ne 2 ]
then
echo -e $intro $usage
exit 1
fi

case "$2" in
-l)
# list only
$RPMCPIO $RPMFILE | cpio -it
;;

-h)
# Display help
echo -e $intro $helpmsg
;;

*)
# check if pattern is in rpm package
if [ `$RPMCPIO $RPMFILE | cpio -it | grep -c "$PAT"` -eq 0 ]
then
echo "No match, try -l to list contents, -h for help"
exit 1
fi
# unpack stuff
for i in `$RPMCPIO $RPMFILE | cpio -it | grep "$PAT"`; \
do $RPMCPIO $RPMFILE |cpio -idmv $i ;done
exit 1
esac

### END ###

--
Michael Heiming

Remove +SIGNS and www. if you expect an answer, sorry for
inconvenience, but I get tons of SPAM
Reply With Quote