[WBEL-devel] RPM problems
David E. Cox
david.e.cox@nasa.gov
Wed, 10 Dec 2003 23:33:30 -0500
Try,
rpm2cpio <rpmfile> | cpio -id
This will extract the rpm's files into the current working directory.
It doesn't do any %post commands defined in the rpm but it will let you
see all the files.
dave
On Wed, 2003-12-10 at 22:18, Charles Lacour wrote:
> I'm replying to my own post in case anyone else gets bitten by the problem.
>
> On Monday 08 December 2003 21:24, Charles Lacour wrote:
> > This will probably turn out to be blindness/idiocy on my part, but I'm
> > trying to install an RPM to a temporary directory to check it out, and it
> > keeps blowing up on me.
> >
> > I _thought_, reading the rpm man page, that one specified "--root
> > <directory>" to have everything go to someplace other than the normal. I
> > entered the following command:
> >
> > $ rpm -vv --root /tmp/wb -i
> > /loop2/RedHat/RPMS/redhat-logos-1.1.14.3-1.noarch.rpm
> >
> > (That's actually all one line -- Kmail wrapped it.) And this is what I got:
>
> <snipped error log>
> >
> > Being a suspicious, paranoid type, I had made /tmp/wb owned by my ordinary
> > id, "clacour", and ran the install command as that ID. As best I can tell,
> > it's choking because it can't write to /boot/grub/splash.xpm.gz. It is NOT
> > (as best I can see) trying to write to /tmp/wb/boot/grub/splash.xpm.gz.
>
> This turned out to be the problem. You have to run the rpm command as root or
> the '--root' option won't work.
>
> FYI, somewhere in the process, it does a true chroot. To get things to work
> all the way through, I had to:
>
> * mkdir -p var/lib/rpm (in my work directory)
> * copy everything from /var/lib/rpm to var/lib/rpm
> * mdkir -p var/tmp
> * mkdir tmp bin sbin lib
> * copy bash, cp, rm, chmod,mktemp to bin (the bin in my work directory), and
> recreate the link of sh --> bash.
> * copy install-info to sbin.
> * Copy the libraries for all of the above libraries for all of the above.
>
> Consider that a starting point for your working directory, if you want to have
> one. Several of the things (cp, rm, install-info, mktemp) I needed because of
> the specific package I was using as a test case (zsh). They were needed by
> it's post-install script (and the doc clearly says it does a chroot before
> doing the %pre and %post scripts.)
>
> Depending on what packages you try to install in it, you will need to copy
> other commands, almost guaranteed.
>
> My whole working directory ended up about 45 MB, just for the infrastructure,
> and it's nowhere near general yet.
>
> If you don't copy /var/lib/rpm to var/lib/rpm, you'll get all kinds of
> complaints about things missing. Copying the rpm databases fools it into
> thinking your system has them installed. (Actually, your system DOES have
> them installed, but rpm at that point is thinking "things inside this --root
> directory"). You could, of course, truly install all those packages, but
> you'd essentially be building a whole new system to test this rpm with.
>
> This isn't that far short of that (or wouldn't be if I finished fleshing it
> out). I'm not real crazy about doing rpm commands, as root, for a target
> system on my real system, though.
>
> Anybody got a better way?
> _______________________________________________
> Whitebox-devel mailing list
> Whitebox-devel@beau.org
> http://beau.org/mailman/listinfo/whitebox-devel