Override RPM install path

Well, yes, sort of:

--relocate OLDPATH=NEWPATH

For relocatable binary packages, translate all file paths that start with OLDPATH in the package relocation hint(s) to NEWPATH.

(man rpm).

However, the software may have its usual install location hardcoded in various places. If an RPM was not meant to be relocated like this (note the "For relocatable binary packages"), this will probably not work.

In that case, your best bet is probably to unpack the RPM manually (rpm2cpio package.rpm | cpio -di in a temporary directory), then manually put stuff where it should go.

Most of all, loudly complain to the admin who did the problematic partition layout. On modern Linux systems, there is little reason for separate partitions. Usually / and /boot are enough...


There is another method that works with non-relocatable packages. Check the path where the files that take the most disk space are located, using this command:

rpm -qpl package.rpm

Example output:

/u01/file1
/u01/file2
...

Create a symbolic link with the name of that directory, pointing to a directory with more free disk space

mkdir /var/lots_of_space
ln -s /var/lots_of_space /u01

And then install the usual way:

rpm -i package.rpm