Mon, 28 Jan 2013 17:37:18 +0100
Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.
1 ##
2 ## openpkg -- OpenPKG Tool Chain
3 ## Copyright (c) 2000-2012 OpenPKG GmbH <http://openpkg.com/>
4 ##
5 ## This software is property of the OpenPKG GmbH, DE MUC HRB 160208.
6 ## All rights reserved. Licenses which grant limited permission to use,
7 ## copy, modify and distribute this software are available from the
8 ## OpenPKG GmbH.
9 ##
10 ## THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE.
22 ##
23 ## openpkg.pod: Minimum Execution Frontend (Language: Perl POD)
24 ##
26 =pod
28 =head1 NAME
30 B<OpenPKG> -- Cross-Platform Unix Software Packaging
32 =head1 SYNOPSIS
34 $ B<openpkg> [I<opt> ...] I<cmd> [I<cmd_opt> ...] [I<cmd_arg> ...]
36 $ B<openpkg> B<man> I<cmd>
38 =head1 DESCRIPTION
40 OpenPKG is the world leading instrument for deployment and maintenance
41 of Open Source software when administration crosses Unix platform
42 boundaries. The OpenPKG project is a collaboration effort with the
43 goal of creating and maintaining portable and easy to install software
44 packages for use on the major Unix server platforms.
46 The unique OpenPKG architecture leverages proven technologies like
47 Red Hat Package Manager (RPM) to establish a unified administration
48 environment, independent of the underlying operating system. OpenPKG
49 is completely self-contained and does not even need a preinstallation
50 of RPM. Instead, RPM is provided as an OpenPKG RPM package itself plus
51 a tricky bootstrapping procedure in order to allow one to create from
52 scratch the initial state of the whole OpenPKG software packaging
53 system.
55 =head1 TUTORIAL
57 =over 3
59 =item B<1. System Preparation (optional)>
61 Before you start, the Unix system optionally should be prepared. Here
62 especially the necessary disk space requirements of OpenPKG have to be
63 taken into account.
65 # optionally direct /openpkg to at least 150MB free disk space:
66 $ mkdir /storage/openpkg
67 $ ln -s /storage/openpkg /openpkg
69 # optionally direct temp-directory to at least 250MB free disk space:
70 $ TMPDIR=/var/tmp
71 $ export TMPDIR
73 # switch to temporary directory:
74 $ cd $TMPDIR
76 =item B<2. Instance Bootstrapping>
78 The next step is to bootstrap the OpenPKG instance. Here we are using
79 the standard /openpkg filesystem prefix. An arbitrary prefix can be
80 used as long as at least the "Bootstrap From Source" approach is used.
82 # download bootstrap source shell package:
83 $ wget http://openpkg.org/go/download/openpkg.src.sh
85 # build bootstrap binary shell package from source shell package:
86 $ sh openpkg.src.sh \
87 --prefix=/openpkg --tag=openpkg \
88 --user=openpkg --group=openpkg \
89 --tag=openpkg
91 # install bootstrap binary script package:
92 $ sh openpkg-*-*.*-openpkg.sh
94 =item B<3. Software Deployment>
96 Now you can install arbitrary OpenPKG software packages by either using
97 the lower-level OpenPKG RPM command or the higher-level OpenPKG tool
98 chain build command. As a simple illustration example the GNU Bash
99 package of OpenPKG is installed.
101 # build and install GNU Bash:
102 $ /openpkg/bin/openpkg build bash | sh
104 =item B<4. Software Usage>
106 Finally, you can use the deployed software. Either through explicit
107 paths (reasonable if leveraging OpenPKG's multiple-instance feature) or
108 implicitly by merging the OpenPKG instance into the local environment.
110 # explicit usage:
111 $ /openpkg/bin/bash --version
113 # implicit usage (alternatively)
114 $ eval `/openpkg/bin/openpkg rc --eval all env`
115 $ bash --version
117 =item B<5. Go Ahead!>
119 Want to know more now? Please read the manual pages of at least the
120 deployment commands and then proceed by searching and deploying even
121 more software into your OpenPKG instance.
123 # read manual pages:
124 $ /openpkg/bin/openpkg man search
125 $ /openpkg/bin/openpkg man build
127 # search for a package
128 $ /openpkg/bin/openpkg search [-v] <regex>
130 # deploy even more packages
131 $ /openpkg/bin/openpkg build \
132 [-D[<package1>::]with_<name>] \
133 [-D[<package2>::]with_<name>] \
134 <package1> <package2> ... | sh
136 For instance, to install and start an Apache HTTP server with SSL/TLS
137 support you can use:
139 $ /openpkg/bin/openpkg search -v apache | more
140 $ /openpkg/bin/openpkg build -D with_mod_ssl=yes apache | sh
141 $ /openpkg/bin/openpkg rc apache start
143 =item B<6. Cleanup>
145 OpenPKG has not convinced you? Well, it's a pity, but no problem. You
146 can easily get rid of anything you installed at once (both the OpenPKG
147 instance and any of its OpenPKG packages) with the following simple
148 command:
150 $ /openpkg/bin/openpkg rc all stop
151 $ /openpkg/bin/openpkg rpm -e `/openpkg/bin/openpkg rpm -qa`
153 =back
155 =head1 SEE ALSO
157 OpenPKG local documentation can be viewed the command "B<openpkg man>
158 I<cmd>", where I<cmd> is one of the following commands:
160 index OpenPKG package indexing
161 search OpenPKG package searching
162 mirror OpenPKG package mirroring
163 build OpenPKG package building and installing
164 rc OpenPKG run-command facility
165 lsync OpenPKG local area synchronization
167 stack OpenPKG software stack generation
168 makeproxy OpenPKG proxy package generation
169 dev OpenPKG development tool
171 rpm RPM package manager
172 rpm2cpio RPM payload utility
173 rpm-config RPM C API utility
174 rpmtool OpenPKG RPM packaging helper tool
176 license OpenPKG license management
177 release OpenPKG release information
178 register OpenPKG registry client (obsolete)
180 sea Shell Execution Archive tool
181 uuid Universal Unique Identifiers tool
183 Additionally, OpenPKG can be found under the following locations on the
184 Internet:
186 http://openpkg.org/ OpenPKG Project (Distribution)
187 http://openpkg.com/ OpenPKG GmbH (Framework, Support)
188 http://openpkg.net/ OpenPKG Foundation e.V. (Packages)
190 =cut