openpkg/build.8

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

     1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
     2 .\"
     3 .\" Standard preamble:
     4 .\" ========================================================================
     5 .de Sp \" Vertical space (when we can't use .PP)
     6 .if t .sp .5v
     7 .if n .sp
     8 ..
     9 .de Vb \" Begin verbatim text
    10 .ft CW
    11 .nf
    12 .ne \\$1
    13 ..
    14 .de Ve \" End verbatim text
    15 .ft R
    16 .fi
    17 ..
    18 .\" Set up some character translations and predefined strings.  \*(-- will
    19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
    20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
    21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
    22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
    23 .\" nothing in troff, for use with C<>.
    24 .tr \(*W-
    25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
    26 .ie n \{\
    27 .    ds -- \(*W-
    28 .    ds PI pi
    29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
    30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
    31 .    ds L" ""
    32 .    ds R" ""
    33 .    ds C` 
    34 .    ds C' 
    35 'br\}
    36 .el\{\
    37 .    ds -- \|\(em\|
    38 .    ds PI \(*p
    39 .    ds L" ``
    40 .    ds R" ''
    41 'br\}
    42 .\"
    43 .\" Escape single quotes in literal strings from groff's Unicode transform.
    44 .ie \n(.g .ds Aq \(aq
    45 .el       .ds Aq '
    46 .\"
    47 .\" If the F register is turned on, we'll generate index entries on stderr for
    48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
    49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
    50 .\" output yourself in some meaningful fashion.
    51 .ie \nF \{\
    52 .    de IX
    53 .    tm Index:\\$1\t\\n%\t"\\$2"
    54 ..
    55 .    nr % 0
    56 .    rr F
    57 .\}
    58 .el \{\
    59 .    de IX
    60 ..
    61 .\}
    62 .\"
    63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
    64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
    65 .    \" fudge factors for nroff and troff
    66 .if n \{\
    67 .    ds #H 0
    68 .    ds #V .8m
    69 .    ds #F .3m
    70 .    ds #[ \f1
    71 .    ds #] \fP
    72 .\}
    73 .if t \{\
    74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
    75 .    ds #V .6m
    76 .    ds #F 0
    77 .    ds #[ \&
    78 .    ds #] \&
    79 .\}
    80 .    \" simple accents for nroff and troff
    81 .if n \{\
    82 .    ds ' \&
    83 .    ds ` \&
    84 .    ds ^ \&
    85 .    ds , \&
    86 .    ds ~ ~
    87 .    ds /
    88 .\}
    89 .if t \{\
    90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
    91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
    92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
    93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
    94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
    95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
    96 .\}
    97 .    \" troff and (daisy-wheel) nroff accents
    98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
    99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
   100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
   101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
   102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
   103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
   104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
   105 .ds ae a\h'-(\w'a'u*4/10)'e
   106 .ds Ae A\h'-(\w'A'u*4/10)'E
   107 .    \" corrections for vroff
   108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
   109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
   110 .    \" for low resolution devices (crt and lpr)
   111 .if \n(.H>23 .if \n(.V>19 \
   112 \{\
   113 .    ds : e
   114 .    ds 8 ss
   115 .    ds o a
   116 .    ds d- d\h'-1'\(ga
   117 .    ds D- D\h'-1'\(hy
   118 .    ds th \o'bp'
   119 .    ds Th \o'LP'
   120 .    ds ae ae
   121 .    ds Ae AE
   122 .\}
   123 .rm #[ #] #H #V #F C
   124 .\" ========================================================================
   125 .\"
   126 .IX Title "BUILD 8"
   127 .TH BUILD 8 "OpenPKG" "BUILD(8)" "OpenPKG"
   128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
   129 .\" way too many mistakes in technical documents.
   130 .if n .ad l
   131 .nh
   132 .SH "NAME"
   133 openpkg build \- OpenPKG Package Building and Installing
   134 .SH "SYNOPSIS"
   135 .IX Header "SYNOPSIS"
   136 \&\fBopenpkg\fR
   137 \&\fBbuild\fR
   138 [\fB\-R\fR \fIrpm\fR]
   139 [\fB\-r\fR \fIrepository\fR]
   140 [\fB\-f\fR \fIindex.rdf\fR]
   141 [\fB\-u\fR]
   142 [\fB\-U\fR]
   143 [\fB\-z\fR]
   144 [\fB\-Z\fR]
   145 [\fB\-i\fR]
   146 [\fB\-q\fR]
   147 [\fB\-s\fR]
   148 [\fB\-S\fR]
   149 [\fB\-M\fR]
   150 [\fB\-L\fR]
   151 [\fB\-W\fR]
   152 [\fB\-X\fR]
   153 [\fB\-K\fR]
   154 [\fB\-k\fR]
   155 [\fB\-e\fR]
   156 [\fB\-b\fR]
   157 [\fB\-B\fR]
   158 [\fB\-G\fR]
   159 [\fB\-P\fR \fIpriv-cmd\fR]
   160 [\fB\-N\fR \fInon-priv-cmd\fR]
   161 [\fB\-p\fR \fIplatform\fR]
   162 [\fB\-D\fR \fIvar\fR=\fIval\fR ...]
   163 [\fB\-E\fR \fIname\fR ...]
   164 [\fB\-H\fR \fIname\fR ...]
   165 ([\fB\-a\fR] [\fB\-A\fR] | \fIpattern\fR ...)
   166 .SH "DESCRIPTION"
   167 .IX Header "DESCRIPTION"
   168 The \fBopenpkg build\fR tool provides automated recursive from-scratch
   169 installation of packages and the updating and upgrading of installed
   170 packages.
   171 .PP
   172 It generates a Bourne-Shell script on standard output (\fIstdout\fR)
   173 that can be executed to perform the package installation or
   174 updating/upgrading procedure for all requested packages and their
   175 dependencies.
   176 .PP
   177 Packages that are upgraded automatically trigger rebuilds of all
   178 packages that depend on the upgraded package (\*(L"reverse dependencies\*(R").
   179 The dependency information is read from an \s-1XML/RDF\s0 index generated by
   180 the companion tool \fBopenpkg index\fR.
   181 .SH "ARGUMENTS"
   182 .IX Header "ARGUMENTS"
   183 Packages are selected by providing a list of name patterns. Each
   184 pattern is either a package name or a name prefix followed by a '\fI*\fR'
   185 character. Additionally, in order to resolve ambiguous dependencies, you
   186 can append a discrimination prefix separated by a comma that matches
   187 against the full "\fIname\fR\-\fIversion\fR\-\fIrevision\fR" string of a package.
   188 .SH "OPTIONS"
   189 .IX Header "OPTIONS"
   190 The following command line options exist:
   191 .IP "\fB\-R\fR \fIcommand\fR" 4
   192 .IX Item "-R command"
   193 Specify the "\fBopenpkg rpm\fR" command with fully qualified path.
   194 Several other internal paths are deduced from the \fIcommand\fR path,
   195 so this has to be something like "\fIprefix\fR\f(CW\*(C`/bin/openpkg rpm\*(C'\fR".
   196 .IP "\fB\-r\fR \fIrepository\fR" 4
   197 .IX Item "-r repository"
   198 Specify the path to an OpenPKG \s-1RPM\s0 package repository.
   199 This can be a \s-1URL\s0 (including \*(L"file://\*(R") to download packages from or
   200 an absolute directory path (identified by leading \*(L"/\*(R") or
   201 a relative directory path (identified by leading \*(L"./\*(R") to access packages directly.
   202 The name of the package file is appended to this path.
   203 The default is to use a \s-1URL\s0 pointing to the \fBOpenPKG\fR download service
   204 as determined by the "\fBopenpkg release\fR" command.
   205 .IP "\fB\-f\fR \fIindex.rdf\fR" 4
   206 .IX Item "-f index.rdf"
   207 Specify the path to the primary \s-1XML/RDF\s0 index. This can be a \s-1URL\s0 or a
   208 file path. If the index contains references to other indices, these
   209 are recursively included automatically. The default is to use a \s-1URL\s0
   210 pointing to the \fBOpenPKG\fR \s-1FTP\s0 server as as determined by the "\fBopenpkg
   211 release\fR" command.
   212 .IP "\fB\-u\fR" 4
   213 .IX Item "-u"
   214 The generated script will ignore binary RPMs that are stored on
   215 your system. Instead it will either fetch binary RPMs or rebuild
   216 from source RPMs fetched from the repository.
   217 .IP "\fB\-U\fR" 4
   218 .IX Item "-U"
   219 The generated script will try to upgrade all selected packages
   220 including their dependencies to the most recent version. Use
   221 this for usual upgrade tasks in combination with option "\fB\-a\fR".
   222 .IP "\fB\-z\fR" 4
   223 .IX Item "-z"
   224 The generated script will rebuild all selected packages
   225 including their dependencies even when the most recent version
   226 is already installed.
   227 .IP "\fB\-Z\fR" 4
   228 .IX Item "-Z"
   229 \&\fBopenpkg build\fR ignores all installed packages, the
   230 generated script will rebuild all selected packages from scratch.
   231 .IP "\fB\-i\fR" 4
   232 .IX Item "-i"
   233 The generated script will ignore run-time errors.
   234 .IP "\fB\-q\fR" 4
   235 .IX Item "-q"
   236 Ignore all reverse dependencies. This means that all packages which are
   237 rebuild do \fInot\fR trigger a rebuild of packages which depend on them.
   238 \&\fI\s-1ATTENTION:\s0 this might break already installed packages and has to be
   239 used with care! You should really know what you are doing.\fR
   240 .IP "\fB\-s\fR" 4
   241 .IX Item "-s"
   242 Generate a status map instead of the shell script. The map consists
   243 of 3 columns: \fIold\fR, \fItag\fR and \fInew\fR. The \fIold\fR column shows
   244 the installed version of a package (\fIname\fR\-\fIversion\fR\-\fIrelease\fR)
   245 or just the package name (\fIname\fR) if no package of that name
   246 is installed and the \fInew\fR column shows the repository version
   247 (\fIname\fR\-\fIversion\fR\-\fIrelease\fR) of a package if it is considered for
   248 installation. The \fItag\fR column shows the following possible values:
   249 .RS 4
   250 .IP "\s-1OK\s0" 10
   251 .IX Item "OK"
   252 The installed package is suitable and will not be touched.
   253 .IP "\s-1ADD\s0" 10
   254 .IX Item "ADD"
   255 There is no installed package yet.
   256 .IP "\s-1UPGRADE\s0" 10
   257 .IX Item "UPGRADE"
   258 The installed package is outdated and requires an update.
   259 .IP "\s-1DEPEND\s0" 10
   260 .IX Item "DEPEND"
   261 The installed package needs rebuilding because one of its
   262 dependencies is rebuild.
   263 .IP "\s-1MISMATCH\s0" 10
   264 .IX Item "MISMATCH"
   265 The installed package needs rebuilding because it was build
   266 with different parameters.
   267 .IP "\s-1CONFLICT\s0" 10
   268 .IX Item "CONFLICT"
   269 The required new package cannot be installed because it
   270 conflicts with some already installed package.
   271 .IP "\s-1UNDEF\s0" 10
   272 .IX Item "UNDEF"
   273 The package has an invalid or ambiguous dependency.
   274 .RE
   275 .RS 4
   276 .RE
   277 .IP "\fB\-S\fR" 4
   278 .IX Item "-S"
   279 Similar to option "\fB\-s\fR" but also lists the newest versions in the
   280 repository. The following \fItag\fR might appear in the map:
   281 .RS 4
   282 .IP "\s-1NEW\s0" 10
   283 .IX Item "NEW"
   284 The package exists in the repository but is not required yet.
   285 .RE
   286 .RS 4
   287 .RE
   288 .IP "\fB\-M\fR" 4
   289 .IX Item "-M"
   290 Similar to option "\fB\-s\fR" but print a short dependency map.
   291 .IP "\fB\-L\fR" 4
   292 .IX Item "-L"
   293 Print a list of packages in the repository that depend on the target.
   294 .IP "\fB\-W\fR" 4
   295 .IX Item "-W"
   296 Include all conditional dependencies as if all possible configuration
   297 options had been switched on. This has little use in practice except for
   298 generating an all-inclusive list with option "\fB\-L\fR". \fI\s-1ATTENTION:\s0 Even
   299 mutually exclusive options are evaluated to be 'on', building packages
   300 with option \*(L"\-W\*(R" therefore might fail or cause unusable results!\fR
   301 .IP "\fB\-X\fR" 4
   302 .IX Item "-X"
   303 Use the slower but more robust external Perl \s-1XML\s0 parser module
   304 XML::Simple instead of the simple internal \s-1XML/RDF\s0 parser.
   305 .IP "\fB\-K\fR" 4
   306 .IX Item "-K"
   307 Keep packages that were installed temporarily during the build process.
   308 Without this option those packages are removed.
   309 .IP "\fB\-k\fR" 4
   310 .IX Item "-k"
   311 Keep packages that were downloaded temporarily for installation or building.
   312 Without this option those packages are removed.
   313 .IP "\fB\-e\fR" 4
   314 .IX Item "-e"
   315 Rebuild exact version of a package from repository even when you have
   316 installed a newer version from another repository.
   317 .IP "\fB\-b\fR" 4
   318 .IX Item "-b"
   319 Wrap package rebuilding commands with script execution-time checks for
   320 existing binary packages if the package is rebuild as a dependency. Wrap
   321 package install commands with script execution-time checks for different
   322 \&\s-1MD5\s0 signature checksums of binary packages and installed packages. This
   323 is best to use with option "\fB\-u\fR" to defer all such checks until script
   324 execution-time.
   325 .IP "\fB\-B\fR" 4
   326 .IX Item "-B"
   327 Same as option "\fB\-b\fR" but also check all explicit target packages for
   328 existing binary packages at script execution-time.
   329 .IP "\fB\-g\fR" 4
   330 .IX Item "-g"
   331 The generated script will rebuild all packages selected even when the
   332 most recent version is already installed. Dependencies are not affected.
   333 Use this especially for updating a package with different build options
   334 (see option "\fB\-D\fR").
   335 .IP "\fB\-P\fR \fIpriv-cmd\fR" 4
   336 .IX Item "-P priv-cmd"
   337 Command prefix to use for generated script commands that require
   338 elevated privileges (like "\fBopenpkg rpm \-Uvh\fR"). The most common tool
   339 for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR starts with a dash it will be run
   340 without the dash and the command line it should execute is passed as
   341 a single quoted string. Use this option for upgrading privileges. For
   342 instance, if you are running the \f(CW\*(C`openpkg build\*(C'\fR\*(L" command as the
   343 management user, use \*(R"\f(CW\*(C`\-P sudo\*(C'\fR\*(L" to make sure that the \*(R"\fBopenpkg rpm
   344 \&\-Uvh\fR" commands in the generated script execute with necessary elevated
   345 privileges.
   346 .IP "\fB\-N\fR \fInon-priv-cmd\fR" 4
   347 .IX Item "-N non-priv-cmd"
   348 Command prefix to use for generated script commands that do \fInot\fR
   349 require elevated privileges (like "\fBopenpkg rpm \-\-rebuild\fR"). The most
   350 common tool for this is \fIsu\fR\|(8). If \fInon-priv-cmd\fR starts with a dash
   351 it will be run without the dash and the command line it should execute
   352 is passed as a single quoted string. Use this option for downgrading
   353 privileges. For instance, if you are running the \f(CW\*(C`openpkg build\*(C'\fR"
   354 command as the \fBroot\fR user, use "\f(CW\*(C`\-N \*(Aq\-su \- \*(C'\fR\fImusr\fR\f(CW\*(C` \-c\*(Aq\*(C'\fR" to make
   355 sure that the non-privileged commands in the generated script execute
   356 with privileges of the management user \fImusr\fR.
   357 .IP "\fB\-p\fR \fIplatform\fR" 4
   358 .IX Item "-p platform"
   359 The platform string that is matched against the \s-1XML/RDF\s0 index for binary
   360 packages. The default is an empty \fIplatform\fR string so that no binary
   361 packages are matched at all.
   362 .IP "\fB\-D\fR \fIvar\fR=\fIval\fR" 4
   363 .IX Item "-D var=val"
   364 Specify build options for selected packages. This can be either
   365 "\fB\-D\fR \fIwith_xxx\fR=\fIyyy\fR\*(L" or just \*(R"\fB\-D\fR \fIwith_xxx\fR\*(L". The latter is
   366 equivalent to a \*(R"\fB\-D\fR \fIwith_xxx\fR=\fIyes\fR\*(L". The parameters are matched
   367 against selected packages that are already installed. If they do
   368 indicate a change, the package is rebuild. There can be multiple \*(R"\fB\-D\fR"
   369 options.
   370 .Sp
   371 If the option name is prefixed with a package name followed by
   372 two colons then it applies only to the specified package, e.g.,
   373 "\fB\-D\fR\fIfoo::with_bar\fR".
   374 .IP "\fB\-E\fR \fIname\fR" 4
   375 .IX Item "-E name"
   376 Ignore a package with the specified \fIname\fR. This can be used to avoid
   377 upgrading to a broken package in the repository or to skip a package
   378 upgrade temporarily. If you use a wildcard pattern or the options
   379 "\fB\-a\fR\*(L" or \*(R"\fB\-A\fR" then \fIname\fR will be excluded. There can be multiple
   380 "\fB\-E\fR" options.
   381 .IP "\fB\-H\fR \fIname\fR" 4
   382 .IX Item "-H name"
   383 Hint about packages that should be preferred when more than one fits
   384 a requirement. There can be multiple "\fB\-H\fR" options.
   385 .IP "\fB\-a\fR" 4
   386 .IX Item "-a"
   387 Select all installed packages. You cannot specify a pattern list together
   388 with the "\fB\-a\fR" option.
   389 .IP "\fB\-A\fR" 4
   390 .IX Item "-A"
   391 Select all packages in the repository. You cannot specify a pattern list
   392 together with the "\fB\-A\fR" option.
   393 .SH "ARGUMENTS"
   394 .IX Header "ARGUMENTS"
   395 In case neither option \fB\-a\fR nor option \fB\-A\fR are specified,
   396 the command line has to contain one or more package \fIpattern\fR
   397 arguments. Each \fIpattern\fR can have the following forms:
   398 .IP "\fIname\fR" 4
   399 .IX Item "name"
   400 A regular package name.
   401 .IP "\fIname\fR\fB*\fR" 4
   402 .IX Item "name*"
   403 A package name wildcard pattern.
   404 .IP "\fIname\fR\fB,\fR\fIname\fR[\fB\-\fR\fIversion\fR[\fB\-\fR\fIrelease\fR]]" 4
   405 .IX Item "name,name[-version[-release]]"
   406 A regular package name followed by a constraint
   407 which particular package should be chosen.
   408 .SH "CONFIGURATION"
   409 .IX Header "CONFIGURATION"
   410 \&\fBopenpkg build\fR reads the configuration file \fI\f(CI$HOME\fI/.openpkg/build\fR.
   411 The file lists default options, one option per line and section tags
   412 of the form \f(CW\*(C`[\*(C'\fR\fIprefix\fR\f(CW\*(C`]\*(C'\fR. Options following such a tag are only
   413 evaluated for the particular \fBOpenPKG\fR instance so that you can
   414 define default options for multiple \fBOpenPKG\fR instances.
   415 .PP
   416 Example:
   417 .PP
   418 .Vb 2
   419 \& # global options
   420 \& \-X
   421 \&
   422 \& [/openpkg/current]
   423 \& # options for CURRENT stack only
   424 \& \-r http://download.openpkg.org/stacks/current/source/
   425 \&
   426 \& [/openpkg/foo]
   427 \& # options for a FOO stack only
   428 \& \-r http://download.openpkg.org/stacks/foo/source/
   429 .Ve
   430 .SH "EXAMPLES"
   431 .IX Header "EXAMPLES"
   432 The following shows a few typical OpenPKG instance
   433 maintenance tasks which involve the \fBopenpkg build\fR command:
   434 .SS "Installation"
   435 .IX Subsection "Installation"
   436 The following examples shows how to initially install an OpenPKG
   437 instance under \fI/openpkg\fR with Apache/PHP & MySQL:
   438 .PP
   439 .Vb 5
   440 \& # bootstrap the OpenPKG instance
   441 \& $ curl \-L \-O http://openpkg.org/go/download/openpkg.src.sh
   442 \& $ sh openpkg\-*\-*.src.sh \-\-prefix=/openpkg \e
   443 \&   \-\-user=openpkg \-\-group=openpkg \-\-tag=openpkg
   444 \& $ sh openpkg\-*\-*.*\-*\-openpkg.sh
   445 \&
   446 \& # install Apache/PHP & MySQL
   447 \& $ /openpkg/bin/openpkg build \e
   448 \&   \-D apache\-php::with_mysql=yes \e
   449 \&   apache apache\-php mysql | sh
   450 .Ve
   451 .SS "Reinstallation"
   452 .IX Subsection "Reinstallation"
   453 The following example shows how to rebuild and reinstall the already
   454 installed package \*(L"foo\*(R":
   455 .PP
   456 .Vb 2
   457 \& # rebuild and reinstall package
   458 \& $ /openpkg/bin/openpkg build \-g \-u foo | sh
   459 .Ve
   460 .SS "Change"
   461 .IX Subsection "Change"
   462 The following fictive example shows how to change the already
   463 installed package \*(L"foo\*(R" by rebuilding and reinstalling it with the
   464 "\f(CW\*(C`foo::with_bar\*(C'\fR" build-time option enabled.
   465 .PP
   466 .Vb 2
   467 \& # change a package
   468 \& $ /openpkg/bin/openpkg build \-g \-D with_bar=yes foo | sh
   469 .Ve
   470 .SS "Update"
   471 .IX Subsection "Update"
   472 The following example shows how to update (no major
   473 OpenPKG version change) an OpenPKG instance under \fI/openpkg\fR:
   474 .PP
   475 .Vb 2
   476 \& # update all packages to their latest version
   477 \& $ /openpkg/bin/openpkg build \-Ua | sh
   478 .Ve
   479 .SS "Upgrade"
   480 .IX Subsection "Upgrade"
   481 The following examples shows a complete procedure for upgrading (major
   482 OpenPKG version change) the instance under \fI/openpkg\fR to OpenPKG
   483 4.X:
   484 .PP
   485 .Vb 3
   486 \& # upgrade the bootstrap package
   487 \& $ /openpkg/bin/openpkg build \e
   488 \&   \-r http://download.openpkg.org/stacks/current/source/ openpkg | sh
   489 \&
   490 \& # upgrade the whole OpenPKG instance, in correct dependency
   491 \& # order and by keeping all chosen build\-time options.
   492 \& $ /openpkg/bin/openpkg build \-ZaKB | sh
   493 .Ve
   494 .SS "Deinstallation"
   495 .IX Subsection "Deinstallation"
   496 The following example shows how to deinstall
   497 an entire OpenPKG intance under \fI/openpkg\fR:
   498 .PP
   499 .Vb 3
   500 \& # remove all packages and the instance itself
   501 \& $ /openpkg/bin/openpkg rpm \-e \e
   502 \&   \`/openpkg/bin/openpkg rpm \-qa\`
   503 .Ve
   504 .SH "CAVEATS"
   505 .IX Header "CAVEATS"
   506 Parallel execution of \fBopenpkg build\fR causes undefined effects.
   507 .SH "HISTORY"
   508 .IX Header "HISTORY"
   509 The \fBopenpkg build\fR command was invented in November 2002 by \fIMichael
   510 van Elst\fR <mlelstv@serpens.de> under contract with \fICable
   511 & Wireless\fR <http://www.cw.com/> for use inside the \fBOpenPKG\fR
   512 project <http://www.openpkg.org/>. It was then further
   513 refined by the \fBOpenPKG Foundation e.V.\fR as part of the OpenPKG Tool Chain.

mercurial