| Server IP : 85.112.90.236 / Your IP : 192.168.1.26 Web Server : Apache System : Linux 85-112-90-236.cprapid.com 6.12.0-211.7.3.el10_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 12:46:58 EDT 2026 x86_64 User : ftechme ( 1002) PHP Version : 8.2.32 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/share/doc/rpm/ |
Upload File : |
--- layout: default title: rpm.org - Relocatable packages --- # Relocatable packages Relocatable packages are a way to give the user a little control over the installation location of a package. For example, a vendor may distribute their software to install in "/opt" but you'd like it to install in "/usr/opt". If the vendor were distributing a relocatable RPM package, it would be easy. ## Building a Relocatable Package Not all software can be "relocatable". Before continuing you should think about how the program works, what files it accesses, what other programs access *it* (and expect it to be in a certain place), etc. If you determine that the location of the package doesn't matter, then it can probably be built as "relocatable". All you need to do to build a relocatable package is put one or more: ``` Prefix: <dir> ``` in your spec file. The "\<dir\>" will usually be something like "/usr", "/usr/local", or "/opt". Every file in your %files list must start with that prefix. For example, if you have "Prefix: /usr" and your %files list contains "/etc/foo.conf", the build will fail. The fix for this is to put ``` Prefix: /usr Prefix: /etc ``` into the spec file so that the /usr and /etc directories may be relocated separately when this package is installed. ## Installing Relocatable Packages By default, RPM will install a relocatable package in the prefix directory listed in the spec file. You can override this on the RPM install command line with "--prefix \<dir\>". For example, if the package in question were going to be installed in "/opt" but you don't have enough disk space there (and it is a relocatable package), you could install it "--prefix /usr/opt". If there is more then one Prefix you may relocate each prefix separately by using syntax like: ``` rpm ... --relocate /opt=/usr/opt --relocate /etc=/usr/etc ... ``` If any of the Prefixes is not being relocated they can be skipped on the command line.