michael@428: .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) michael@428: .\" michael@428: .\" Standard preamble: michael@428: .\" ======================================================================== michael@428: .de Sp \" Vertical space (when we can't use .PP) michael@428: .if t .sp .5v michael@428: .if n .sp michael@428: .. michael@428: .de Vb \" Begin verbatim text michael@428: .ft CW michael@428: .nf michael@428: .ne \\$1 michael@428: .. michael@428: .de Ve \" End verbatim text michael@428: .ft R michael@428: .fi michael@428: .. michael@428: .\" Set up some character translations and predefined strings. \*(-- will michael@428: .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left michael@428: .\" double quote, and \*(R" will give a right double quote. \*(C+ will michael@428: .\" give a nicer C++. Capital omega is used to do unbreakable dashes and michael@428: .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, michael@428: .\" nothing in troff, for use with C<>. michael@428: .tr \(*W- michael@428: .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' michael@428: .ie n \{\ michael@428: . ds -- \(*W- michael@428: . ds PI pi michael@428: . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch michael@428: . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch michael@428: . ds L" "" michael@428: . ds R" "" michael@428: . ds C` michael@428: . ds C' michael@428: 'br\} michael@428: .el\{\ michael@428: . ds -- \|\(em\| michael@428: . ds PI \(*p michael@428: . ds L" `` michael@428: . ds R" '' michael@428: 'br\} michael@428: .\" michael@428: .\" Escape single quotes in literal strings from groff's Unicode transform. michael@428: .ie \n(.g .ds Aq \(aq michael@428: .el .ds Aq ' michael@428: .\" michael@428: .\" If the F register is turned on, we'll generate index entries on stderr for michael@428: .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index michael@428: .\" entries marked with X<> in POD. Of course, you'll have to process the michael@428: .\" output yourself in some meaningful fashion. michael@428: .ie \nF \{\ michael@428: . de IX michael@428: . tm Index:\\$1\t\\n%\t"\\$2" michael@428: .. michael@428: . nr % 0 michael@428: . rr F michael@428: .\} michael@428: .el \{\ michael@428: . de IX michael@428: .. michael@428: .\} michael@428: .\" michael@428: .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). michael@428: .\" Fear. Run. Save yourself. No user-serviceable parts. michael@428: . \" fudge factors for nroff and troff michael@428: .if n \{\ michael@428: . ds #H 0 michael@428: . ds #V .8m michael@428: . ds #F .3m michael@428: . ds #[ \f1 michael@428: . ds #] \fP michael@428: .\} michael@428: .if t \{\ michael@428: . ds #H ((1u-(\\\\n(.fu%2u))*.13m) michael@428: . ds #V .6m michael@428: . ds #F 0 michael@428: . ds #[ \& michael@428: . ds #] \& michael@428: .\} michael@428: . \" simple accents for nroff and troff michael@428: .if n \{\ michael@428: . ds ' \& michael@428: . ds ` \& michael@428: . ds ^ \& michael@428: . ds , \& michael@428: . ds ~ ~ michael@428: . ds / michael@428: .\} michael@428: .if t \{\ michael@428: . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" michael@428: . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' michael@428: . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' michael@428: . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' michael@428: . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' michael@428: . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' michael@428: .\} michael@428: . \" troff and (daisy-wheel) nroff accents michael@428: .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' michael@428: .ds 8 \h'\*(#H'\(*b\h'-\*(#H' michael@428: .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] michael@428: .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' michael@428: .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' michael@428: .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] michael@428: .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] michael@428: .ds ae a\h'-(\w'a'u*4/10)'e michael@428: .ds Ae A\h'-(\w'A'u*4/10)'E michael@428: . \" corrections for vroff michael@428: .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' michael@428: .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' michael@428: . \" for low resolution devices (crt and lpr) michael@428: .if \n(.H>23 .if \n(.V>19 \ michael@428: \{\ michael@428: . ds : e michael@428: . ds 8 ss michael@428: . ds o a michael@428: . ds d- d\h'-1'\(ga michael@428: . ds D- D\h'-1'\(hy michael@428: . ds th \o'bp' michael@428: . ds Th \o'LP' michael@428: . ds ae ae michael@428: . ds Ae AE michael@428: .\} michael@428: .rm #[ #] #H #V #F C michael@428: .\" ======================================================================== michael@428: .\" michael@428: .IX Title "BUILD 8" michael@428: .TH BUILD 8 "OpenPKG" "BUILD(8)" "OpenPKG" michael@428: .\" For nroff, turn off justification. Always turn off hyphenation; it makes michael@428: .\" way too many mistakes in technical documents. michael@428: .if n .ad l michael@428: .nh michael@428: .SH "NAME" michael@428: openpkg build \- OpenPKG Package Building and Installing michael@428: .SH "SYNOPSIS" michael@428: .IX Header "SYNOPSIS" michael@428: \&\fBopenpkg\fR michael@428: \&\fBbuild\fR michael@428: [\fB\-R\fR \fIrpm\fR] michael@428: [\fB\-r\fR \fIrepository\fR] michael@428: [\fB\-f\fR \fIindex.rdf\fR] michael@428: [\fB\-u\fR] michael@428: [\fB\-U\fR] michael@428: [\fB\-z\fR] michael@428: [\fB\-Z\fR] michael@428: [\fB\-i\fR] michael@428: [\fB\-q\fR] michael@428: [\fB\-s\fR] michael@428: [\fB\-S\fR] michael@428: [\fB\-M\fR] michael@428: [\fB\-L\fR] michael@428: [\fB\-W\fR] michael@428: [\fB\-X\fR] michael@428: [\fB\-K\fR] michael@428: [\fB\-k\fR] michael@428: [\fB\-e\fR] michael@428: [\fB\-b\fR] michael@428: [\fB\-B\fR] michael@428: [\fB\-G\fR] michael@428: [\fB\-P\fR \fIpriv-cmd\fR] michael@428: [\fB\-N\fR \fInon-priv-cmd\fR] michael@428: [\fB\-p\fR \fIplatform\fR] michael@428: [\fB\-D\fR \fIvar\fR=\fIval\fR ...] michael@428: [\fB\-E\fR \fIname\fR ...] michael@428: [\fB\-H\fR \fIname\fR ...] michael@428: ([\fB\-a\fR] [\fB\-A\fR] | \fIpattern\fR ...) michael@428: .SH "DESCRIPTION" michael@428: .IX Header "DESCRIPTION" michael@428: The \fBopenpkg build\fR tool provides automated recursive from-scratch michael@428: installation of packages and the updating and upgrading of installed michael@428: packages. michael@428: .PP michael@428: It generates a Bourne-Shell script on standard output (\fIstdout\fR) michael@428: that can be executed to perform the package installation or michael@428: updating/upgrading procedure for all requested packages and their michael@428: dependencies. michael@428: .PP michael@428: Packages that are upgraded automatically trigger rebuilds of all michael@428: packages that depend on the upgraded package (\*(L"reverse dependencies\*(R"). michael@428: The dependency information is read from an \s-1XML/RDF\s0 index generated by michael@428: the companion tool \fBopenpkg index\fR. michael@428: .SH "ARGUMENTS" michael@428: .IX Header "ARGUMENTS" michael@428: Packages are selected by providing a list of name patterns. Each michael@428: pattern is either a package name or a name prefix followed by a '\fI*\fR' michael@428: character. Additionally, in order to resolve ambiguous dependencies, you michael@428: can append a discrimination prefix separated by a comma that matches michael@428: against the full "\fIname\fR\-\fIversion\fR\-\fIrevision\fR" string of a package. michael@428: .SH "OPTIONS" michael@428: .IX Header "OPTIONS" michael@428: The following command line options exist: michael@428: .IP "\fB\-R\fR \fIcommand\fR" 4 michael@428: .IX Item "-R command" michael@428: Specify the "\fBopenpkg rpm\fR" command with fully qualified path. michael@428: Several other internal paths are deduced from the \fIcommand\fR path, michael@428: so this has to be something like "\fIprefix\fR\f(CW\*(C`/bin/openpkg rpm\*(C'\fR". michael@428: .IP "\fB\-r\fR \fIrepository\fR" 4 michael@428: .IX Item "-r repository" michael@428: Specify the path to an OpenPKG \s-1RPM\s0 package repository. michael@428: This can be a \s-1URL\s0 (including \*(L"file://\*(R") to download packages from or michael@428: an absolute directory path (identified by leading \*(L"/\*(R") or michael@428: a relative directory path (identified by leading \*(L"./\*(R") to access packages directly. michael@428: The name of the package file is appended to this path. michael@428: The default is to use a \s-1URL\s0 pointing to the \fBOpenPKG\fR download service michael@428: as determined by the "\fBopenpkg release\fR" command. michael@428: .IP "\fB\-f\fR \fIindex.rdf\fR" 4 michael@428: .IX Item "-f index.rdf" michael@428: Specify the path to the primary \s-1XML/RDF\s0 index. This can be a \s-1URL\s0 or a michael@428: file path. If the index contains references to other indices, these michael@428: are recursively included automatically. The default is to use a \s-1URL\s0 michael@428: pointing to the \fBOpenPKG\fR \s-1FTP\s0 server as as determined by the "\fBopenpkg michael@428: release\fR" command. michael@428: .IP "\fB\-u\fR" 4 michael@428: .IX Item "-u" michael@428: The generated script will ignore binary RPMs that are stored on michael@428: your system. Instead it will either fetch binary RPMs or rebuild michael@428: from source RPMs fetched from the repository. michael@428: .IP "\fB\-U\fR" 4 michael@428: .IX Item "-U" michael@428: The generated script will try to upgrade all selected packages michael@428: including their dependencies to the most recent version. Use michael@428: this for usual upgrade tasks in combination with option "\fB\-a\fR". michael@428: .IP "\fB\-z\fR" 4 michael@428: .IX Item "-z" michael@428: The generated script will rebuild all selected packages michael@428: including their dependencies even when the most recent version michael@428: is already installed. michael@428: .IP "\fB\-Z\fR" 4 michael@428: .IX Item "-Z" michael@428: \&\fBopenpkg build\fR ignores all installed packages, the michael@428: generated script will rebuild all selected packages from scratch. michael@428: .IP "\fB\-i\fR" 4 michael@428: .IX Item "-i" michael@428: The generated script will ignore run-time errors. michael@428: .IP "\fB\-q\fR" 4 michael@428: .IX Item "-q" michael@428: Ignore all reverse dependencies. This means that all packages which are michael@428: rebuild do \fInot\fR trigger a rebuild of packages which depend on them. michael@428: \&\fI\s-1ATTENTION:\s0 this might break already installed packages and has to be michael@428: used with care! You should really know what you are doing.\fR michael@428: .IP "\fB\-s\fR" 4 michael@428: .IX Item "-s" michael@428: Generate a status map instead of the shell script. The map consists michael@428: of 3 columns: \fIold\fR, \fItag\fR and \fInew\fR. The \fIold\fR column shows michael@428: the installed version of a package (\fIname\fR\-\fIversion\fR\-\fIrelease\fR) michael@428: or just the package name (\fIname\fR) if no package of that name michael@428: is installed and the \fInew\fR column shows the repository version michael@428: (\fIname\fR\-\fIversion\fR\-\fIrelease\fR) of a package if it is considered for michael@428: installation. The \fItag\fR column shows the following possible values: michael@428: .RS 4 michael@428: .IP "\s-1OK\s0" 10 michael@428: .IX Item "OK" michael@428: The installed package is suitable and will not be touched. michael@428: .IP "\s-1ADD\s0" 10 michael@428: .IX Item "ADD" michael@428: There is no installed package yet. michael@428: .IP "\s-1UPGRADE\s0" 10 michael@428: .IX Item "UPGRADE" michael@428: The installed package is outdated and requires an update. michael@428: .IP "\s-1DEPEND\s0" 10 michael@428: .IX Item "DEPEND" michael@428: The installed package needs rebuilding because one of its michael@428: dependencies is rebuild. michael@428: .IP "\s-1MISMATCH\s0" 10 michael@428: .IX Item "MISMATCH" michael@428: The installed package needs rebuilding because it was build michael@428: with different parameters. michael@428: .IP "\s-1CONFLICT\s0" 10 michael@428: .IX Item "CONFLICT" michael@428: The required new package cannot be installed because it michael@428: conflicts with some already installed package. michael@428: .IP "\s-1UNDEF\s0" 10 michael@428: .IX Item "UNDEF" michael@428: The package has an invalid or ambiguous dependency. michael@428: .RE michael@428: .RS 4 michael@428: .RE michael@428: .IP "\fB\-S\fR" 4 michael@428: .IX Item "-S" michael@428: Similar to option "\fB\-s\fR" but also lists the newest versions in the michael@428: repository. The following \fItag\fR might appear in the map: michael@428: .RS 4 michael@428: .IP "\s-1NEW\s0" 10 michael@428: .IX Item "NEW" michael@428: The package exists in the repository but is not required yet. michael@428: .RE michael@428: .RS 4 michael@428: .RE michael@428: .IP "\fB\-M\fR" 4 michael@428: .IX Item "-M" michael@428: Similar to option "\fB\-s\fR" but print a short dependency map. michael@428: .IP "\fB\-L\fR" 4 michael@428: .IX Item "-L" michael@428: Print a list of packages in the repository that depend on the target. michael@428: .IP "\fB\-W\fR" 4 michael@428: .IX Item "-W" michael@428: Include all conditional dependencies as if all possible configuration michael@428: options had been switched on. This has little use in practice except for michael@428: generating an all-inclusive list with option "\fB\-L\fR". \fI\s-1ATTENTION:\s0 Even michael@428: mutually exclusive options are evaluated to be 'on', building packages michael@428: with option \*(L"\-W\*(R" therefore might fail or cause unusable results!\fR michael@428: .IP "\fB\-X\fR" 4 michael@428: .IX Item "-X" michael@428: Use the slower but more robust external Perl \s-1XML\s0 parser module michael@428: XML::Simple instead of the simple internal \s-1XML/RDF\s0 parser. michael@428: .IP "\fB\-K\fR" 4 michael@428: .IX Item "-K" michael@428: Keep packages that were installed temporarily during the build process. michael@428: Without this option those packages are removed. michael@428: .IP "\fB\-k\fR" 4 michael@428: .IX Item "-k" michael@428: Keep packages that were downloaded temporarily for installation or building. michael@428: Without this option those packages are removed. michael@428: .IP "\fB\-e\fR" 4 michael@428: .IX Item "-e" michael@428: Rebuild exact version of a package from repository even when you have michael@428: installed a newer version from another repository. michael@428: .IP "\fB\-b\fR" 4 michael@428: .IX Item "-b" michael@428: Wrap package rebuilding commands with script execution-time checks for michael@428: existing binary packages if the package is rebuild as a dependency. Wrap michael@428: package install commands with script execution-time checks for different michael@428: \&\s-1MD5\s0 signature checksums of binary packages and installed packages. This michael@428: is best to use with option "\fB\-u\fR" to defer all such checks until script michael@428: execution-time. michael@428: .IP "\fB\-B\fR" 4 michael@428: .IX Item "-B" michael@428: Same as option "\fB\-b\fR" but also check all explicit target packages for michael@428: existing binary packages at script execution-time. michael@428: .IP "\fB\-g\fR" 4 michael@428: .IX Item "-g" michael@428: The generated script will rebuild all packages selected even when the michael@428: most recent version is already installed. Dependencies are not affected. michael@428: Use this especially for updating a package with different build options michael@428: (see option "\fB\-D\fR"). michael@428: .IP "\fB\-P\fR \fIpriv-cmd\fR" 4 michael@428: .IX Item "-P priv-cmd" michael@428: Command prefix to use for generated script commands that require michael@428: elevated privileges (like "\fBopenpkg rpm \-Uvh\fR"). The most common tool michael@428: for this is \fIsudo\fR\|(8). If \fIpriv-cmd\fR starts with a dash it will be run michael@428: without the dash and the command line it should execute is passed as michael@428: a single quoted string. Use this option for upgrading privileges. For michael@428: instance, if you are running the \f(CW\*(C`openpkg build\*(C'\fR\*(L" command as the michael@428: management user, use \*(R"\f(CW\*(C`\-P sudo\*(C'\fR\*(L" to make sure that the \*(R"\fBopenpkg rpm michael@428: \&\-Uvh\fR" commands in the generated script execute with necessary elevated michael@428: privileges. michael@428: .IP "\fB\-N\fR \fInon-priv-cmd\fR" 4 michael@428: .IX Item "-N non-priv-cmd" michael@428: Command prefix to use for generated script commands that do \fInot\fR michael@428: require elevated privileges (like "\fBopenpkg rpm \-\-rebuild\fR"). The most michael@428: common tool for this is \fIsu\fR\|(8). If \fInon-priv-cmd\fR starts with a dash michael@428: it will be run without the dash and the command line it should execute michael@428: is passed as a single quoted string. Use this option for downgrading michael@428: privileges. For instance, if you are running the \f(CW\*(C`openpkg build\*(C'\fR" michael@428: 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 michael@428: sure that the non-privileged commands in the generated script execute michael@428: with privileges of the management user \fImusr\fR. michael@428: .IP "\fB\-p\fR \fIplatform\fR" 4 michael@428: .IX Item "-p platform" michael@428: The platform string that is matched against the \s-1XML/RDF\s0 index for binary michael@428: packages. The default is an empty \fIplatform\fR string so that no binary michael@428: packages are matched at all. michael@428: .IP "\fB\-D\fR \fIvar\fR=\fIval\fR" 4 michael@428: .IX Item "-D var=val" michael@428: Specify build options for selected packages. This can be either michael@428: "\fB\-D\fR \fIwith_xxx\fR=\fIyyy\fR\*(L" or just \*(R"\fB\-D\fR \fIwith_xxx\fR\*(L". The latter is michael@428: equivalent to a \*(R"\fB\-D\fR \fIwith_xxx\fR=\fIyes\fR\*(L". The parameters are matched michael@428: against selected packages that are already installed. If they do michael@428: indicate a change, the package is rebuild. There can be multiple \*(R"\fB\-D\fR" michael@428: options. michael@428: .Sp michael@428: If the option name is prefixed with a package name followed by michael@428: two colons then it applies only to the specified package, e.g., michael@428: "\fB\-D\fR\fIfoo::with_bar\fR". michael@428: .IP "\fB\-E\fR \fIname\fR" 4 michael@428: .IX Item "-E name" michael@428: Ignore a package with the specified \fIname\fR. This can be used to avoid michael@428: upgrading to a broken package in the repository or to skip a package michael@428: upgrade temporarily. If you use a wildcard pattern or the options michael@428: "\fB\-a\fR\*(L" or \*(R"\fB\-A\fR" then \fIname\fR will be excluded. There can be multiple michael@428: "\fB\-E\fR" options. michael@428: .IP "\fB\-H\fR \fIname\fR" 4 michael@428: .IX Item "-H name" michael@428: Hint about packages that should be preferred when more than one fits michael@428: a requirement. There can be multiple "\fB\-H\fR" options. michael@428: .IP "\fB\-a\fR" 4 michael@428: .IX Item "-a" michael@428: Select all installed packages. You cannot specify a pattern list together michael@428: with the "\fB\-a\fR" option. michael@428: .IP "\fB\-A\fR" 4 michael@428: .IX Item "-A" michael@428: Select all packages in the repository. You cannot specify a pattern list michael@428: together with the "\fB\-A\fR" option. michael@428: .SH "ARGUMENTS" michael@428: .IX Header "ARGUMENTS" michael@428: In case neither option \fB\-a\fR nor option \fB\-A\fR are specified, michael@428: the command line has to contain one or more package \fIpattern\fR michael@428: arguments. Each \fIpattern\fR can have the following forms: michael@428: .IP "\fIname\fR" 4 michael@428: .IX Item "name" michael@428: A regular package name. michael@428: .IP "\fIname\fR\fB*\fR" 4 michael@428: .IX Item "name*" michael@428: A package name wildcard pattern. michael@428: .IP "\fIname\fR\fB,\fR\fIname\fR[\fB\-\fR\fIversion\fR[\fB\-\fR\fIrelease\fR]]" 4 michael@428: .IX Item "name,name[-version[-release]]" michael@428: A regular package name followed by a constraint michael@428: which particular package should be chosen. michael@428: .SH "CONFIGURATION" michael@428: .IX Header "CONFIGURATION" michael@428: \&\fBopenpkg build\fR reads the configuration file \fI\f(CI$HOME\fI/.openpkg/build\fR. michael@428: The file lists default options, one option per line and section tags michael@428: of the form \f(CW\*(C`[\*(C'\fR\fIprefix\fR\f(CW\*(C`]\*(C'\fR. Options following such a tag are only michael@428: evaluated for the particular \fBOpenPKG\fR instance so that you can michael@428: define default options for multiple \fBOpenPKG\fR instances. michael@428: .PP michael@428: Example: michael@428: .PP michael@428: .Vb 2 michael@428: \& # global options michael@428: \& \-X michael@428: \& michael@428: \& [/openpkg/current] michael@428: \& # options for CURRENT stack only michael@428: \& \-r http://download.openpkg.org/stacks/current/source/ michael@428: \& michael@428: \& [/openpkg/foo] michael@428: \& # options for a FOO stack only michael@428: \& \-r http://download.openpkg.org/stacks/foo/source/ michael@428: .Ve michael@428: .SH "EXAMPLES" michael@428: .IX Header "EXAMPLES" michael@428: The following shows a few typical OpenPKG instance michael@428: maintenance tasks which involve the \fBopenpkg build\fR command: michael@428: .SS "Installation" michael@428: .IX Subsection "Installation" michael@428: The following examples shows how to initially install an OpenPKG michael@428: instance under \fI/openpkg\fR with Apache/PHP & MySQL: michael@428: .PP michael@428: .Vb 5 michael@428: \& # bootstrap the OpenPKG instance michael@428: \& $ curl \-L \-O http://openpkg.org/go/download/openpkg.src.sh michael@428: \& $ sh openpkg\-*\-*.src.sh \-\-prefix=/openpkg \e michael@428: \& \-\-user=openpkg \-\-group=openpkg \-\-tag=openpkg michael@428: \& $ sh openpkg\-*\-*.*\-*\-openpkg.sh michael@428: \& michael@428: \& # install Apache/PHP & MySQL michael@428: \& $ /openpkg/bin/openpkg build \e michael@428: \& \-D apache\-php::with_mysql=yes \e michael@428: \& apache apache\-php mysql | sh michael@428: .Ve michael@428: .SS "Reinstallation" michael@428: .IX Subsection "Reinstallation" michael@428: The following example shows how to rebuild and reinstall the already michael@428: installed package \*(L"foo\*(R": michael@428: .PP michael@428: .Vb 2 michael@428: \& # rebuild and reinstall package michael@428: \& $ /openpkg/bin/openpkg build \-g \-u foo | sh michael@428: .Ve michael@428: .SS "Change" michael@428: .IX Subsection "Change" michael@428: The following fictive example shows how to change the already michael@428: installed package \*(L"foo\*(R" by rebuilding and reinstalling it with the michael@428: "\f(CW\*(C`foo::with_bar\*(C'\fR" build-time option enabled. michael@428: .PP michael@428: .Vb 2 michael@428: \& # change a package michael@428: \& $ /openpkg/bin/openpkg build \-g \-D with_bar=yes foo | sh michael@428: .Ve michael@428: .SS "Update" michael@428: .IX Subsection "Update" michael@428: The following example shows how to update (no major michael@428: OpenPKG version change) an OpenPKG instance under \fI/openpkg\fR: michael@428: .PP michael@428: .Vb 2 michael@428: \& # update all packages to their latest version michael@428: \& $ /openpkg/bin/openpkg build \-Ua | sh michael@428: .Ve michael@428: .SS "Upgrade" michael@428: .IX Subsection "Upgrade" michael@428: The following examples shows a complete procedure for upgrading (major michael@428: OpenPKG version change) the instance under \fI/openpkg\fR to OpenPKG michael@428: 4.X: michael@428: .PP michael@428: .Vb 3 michael@428: \& # upgrade the bootstrap package michael@428: \& $ /openpkg/bin/openpkg build \e michael@428: \& \-r http://download.openpkg.org/stacks/current/source/ openpkg | sh michael@428: \& michael@428: \& # upgrade the whole OpenPKG instance, in correct dependency michael@428: \& # order and by keeping all chosen build\-time options. michael@428: \& $ /openpkg/bin/openpkg build \-ZaKB | sh michael@428: .Ve michael@428: .SS "Deinstallation" michael@428: .IX Subsection "Deinstallation" michael@428: The following example shows how to deinstall michael@428: an entire OpenPKG intance under \fI/openpkg\fR: michael@428: .PP michael@428: .Vb 3 michael@428: \& # remove all packages and the instance itself michael@428: \& $ /openpkg/bin/openpkg rpm \-e \e michael@428: \& \`/openpkg/bin/openpkg rpm \-qa\` michael@428: .Ve michael@428: .SH "CAVEATS" michael@428: .IX Header "CAVEATS" michael@428: Parallel execution of \fBopenpkg build\fR causes undefined effects. michael@428: .SH "HISTORY" michael@428: .IX Header "HISTORY" michael@428: The \fBopenpkg build\fR command was invented in November 2002 by \fIMichael michael@428: van Elst\fR under contract with \fICable michael@428: & Wireless\fR for use inside the \fBOpenPKG\fR michael@428: project . It was then further michael@428: refined by the \fBOpenPKG Foundation e.V.\fR as part of the OpenPKG Tool Chain.