So lets focus on rpm installation in a specific directory, well , for that to happen, rpm package should be relocatable, means if that package is flexible enough to be installed in different direction as provided by user or its hard coded, examples are like bash shell package or flash packages, which may not be relocatable.
[[email protected] ~]# rpm -qpi /home/redhat/Downloads/flash-plugin-184.108.40.206-release.i386.rpm
Name : flash-plugin Relocations: (not relocatable)
Version : 220.127.116.11 Vendor: Adobe Systems Inc.
Release : release Build Date: Fri 10 Aug 2012 06:45:38 PM PDT
Install Date: (not installed) Build Host: frbld_lnx_016.macromedia.com
Group : Applications/Internet Source RPM: flash-plugin-18.104.22.168-release.src.rpm
Size : 18383579 License: Commercial
Signature : (none)
Packager : Adobe Systems Inc.
URL : http://www.adobe.com/downloads/
Summary : Adobe Flash Player 11.2
Adobe Flash Plugin 22.214.171.124
Fully Supported: Mozilla SeaMonkey 1.0+, Firefox 1.5+, Mozilla 1.7.13+
So the above package is not relocatable and it can’t be installed in custom location.
You can also try below command to find whether the package is relocatable
#rpm –qi [package_name] | grep Relocations
If the package is relocatable it might show in the output as below
Name : keyutils-libs Relocations: /opt
Install package to different directory
If the package is relocatable, it can be installed to a different location.
#rpm --prefix=/mnt gnome-backgrounds-2.28.0-2.el6.noarch.rpm