blob: d73d0ce32a6184b8b69cdc09ff3e5ad38df5d1df (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/*! \page relocatable 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.
\section relocatable_building 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:
\verbatim
Prefix: <dir>
\endverbatim
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
\verbatim
Prefix: /usr
Prefix: /etc
\endverbatim
into the spec file so that the /usr and /etc directories may be
relocated separately when this package is installed.
\section relocatable_installing 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:
\verbatim
rpm ... --relocate /opt=/usr/opt --relocate /etc=/usr/etc ...
\endverbatim
If any of the Prefixes is not being relocated they can be skipped on
the command line
*/
|