RPMs, why can't I install to where I want?

I can use KRPMview or midnight commander to see what’s in an RPM, fine.

I might want to inspect a file inside an RPM or actually install some of its files but this latter might upset already installed files. Or, it is so dependent on something else being previously installed. Therefore I need to install it elsewhere,take a look at he file content and/or copy, it to where I want.

There are options: --badreloc --prefix --relocate --nodeps --ignoreos --force

some are mutually exclusive but the result is it still tells me - package not relocatable.

Is there any other magic incantation or do I need to do some time-consuming backup, run the RPM install and any deps hell, do my intended thing, then another time-consuming restore?

Or maybe set up a partition with a suitable suse version and just run the RPM there and then copy over?

Non-relocatable RPM contain binaries that have various paths compiled into them, paths of libraries, paths of other binaries, paths of config files. That’s why they are not relocatable.

If you just want to look inside a RPM there are various ways. From the CLI I often use rpm2cpio to unpack to my own directory.

In addition to my first sentence?

From the CLI I often use rpm2cpio to unpack to my own directory.

Really? Either I see an approximation of what used to be “ascii art” or ’ bash: /zz: is a directory ’ depending on the myriad combinations from placement of:- rpm2cpio xxx.rpm /zz - < > | = ’ ’ “” ] .

And lest anyone misconstrues, placement combinations of those various terms after rpm2cpio.

rpm2cpio foo.rpm | cpio -itv

That’s just to view the dir of contents. To unpack, use -idmv. See man page of cpio. It will unpack with the current directory as / of the RPM.

aha, - slaps forehead!

ok thanks :slight_smile: