37 lines
1.5 KiB
Plaintext
37 lines
1.5 KiB
Plaintext
![]() |
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:
|
||
|
|
||
|
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.
|
||
|
|
||
|
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".
|