An RPM is relocatable if you can install it like this:
rpm -ivh --prefix=/path/to/non/default/dir package-name.rpm
Without getting the following error message:
error: package package-name is not relocatable
This link states:
RPM has the ability to give users some latitude in deciding where packages are to be installed on their systems. However, package builders must first design their packages to give users this freedom. In other words, an RPM package that can be installed into a different directory is said to be relocatable. Please note that not all RPM packages can be installed into another directory.
It however does not explain why a package builder would not want to permit users the freedom to decide where to install the package.
So, why is it a good idea to make a particular package not relocatable?
Best Answer
In fact, most RPM packages you will find are not relocatable.
The Fedora Packaging Guidelines have this to say:
These being the upstream packages for RHEL, you are very unlikely to find a relocatable package in an official Fedora, RHEL/CentOS, or EPEL distribution repository.
You might, however, very rarely find third-party RPMs which are relocatable. But there's no good way to install or manage them once they are installed, as dependency managers can't handle them, and there's little point to trying to relocate the package anyway.