michael@13: ## michael@13: ## openpkg -- OpenPKG Tool Chain michael@428: ## Copyright (c) 2000-2012 OpenPKG GmbH michael@13: ## michael@428: ## This software is property of the OpenPKG GmbH, DE MUC HRB 160208. michael@428: ## All rights reserved. Licenses which grant limited permission to use, michael@428: ## copy, modify and distribute this software are available from the michael@428: ## OpenPKG GmbH. michael@13: ## michael@428: ## THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED michael@13: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@13: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@13: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@13: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@13: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@13: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@13: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@13: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@13: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@13: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@13: ## SUCH DAMAGE. michael@13: ## michael@13: ## openpkg.pod: Minimum Execution Frontend (Language: Perl POD) michael@13: ## michael@13: michael@13: =pod michael@13: michael@13: =head1 NAME michael@13: michael@428: B -- Cross-Platform Unix Software Packaging michael@13: michael@13: =head1 SYNOPSIS michael@13: michael@13: $ B [I ...] I [I ...] [I ...] michael@13: michael@13: $ B B I michael@13: michael@428: =head1 DESCRIPTION michael@13: michael@13: OpenPKG is the world leading instrument for deployment and maintenance michael@13: of Open Source software when administration crosses Unix platform michael@13: boundaries. The OpenPKG project is a collaboration effort with the michael@13: goal of creating and maintaining portable and easy to install software michael@13: packages for use on the major Unix server platforms. michael@13: michael@13: The unique OpenPKG architecture leverages proven technologies like michael@13: Red Hat Package Manager (RPM) to establish a unified administration michael@13: environment, independent of the underlying operating system. OpenPKG michael@13: is completely self-contained and does not even need a preinstallation michael@13: of RPM. Instead, RPM is provided as an OpenPKG RPM package itself plus michael@13: a tricky bootstrapping procedure in order to allow one to create from michael@13: scratch the initial state of the whole OpenPKG software packaging michael@13: system. michael@13: michael@428: =head1 TUTORIAL michael@428: michael@428: =over 3 michael@428: michael@428: =item B<1. System Preparation (optional)> michael@428: michael@428: Before you start, the Unix system optionally should be prepared. Here michael@428: especially the necessary disk space requirements of OpenPKG have to be michael@428: taken into account. michael@428: michael@428: # optionally direct /openpkg to at least 150MB free disk space: michael@428: $ mkdir /storage/openpkg michael@428: $ ln -s /storage/openpkg /openpkg michael@428: michael@428: # optionally direct temp-directory to at least 250MB free disk space: michael@428: $ TMPDIR=/var/tmp michael@428: $ export TMPDIR michael@428: michael@428: # switch to temporary directory: michael@428: $ cd $TMPDIR michael@428: michael@428: =item B<2. Instance Bootstrapping> michael@428: michael@428: The next step is to bootstrap the OpenPKG instance. Here we are using michael@428: the standard /openpkg filesystem prefix. An arbitrary prefix can be michael@428: used as long as at least the "Bootstrap From Source" approach is used. michael@428: michael@428: # download bootstrap source shell package: michael@428: $ wget http://openpkg.org/go/download/openpkg.src.sh michael@428: michael@428: # build bootstrap binary shell package from source shell package: michael@428: $ sh openpkg.src.sh \ michael@428: --prefix=/openpkg --tag=openpkg \ michael@428: --user=openpkg --group=openpkg \ michael@428: --tag=openpkg michael@428: michael@428: # install bootstrap binary script package: michael@428: $ sh openpkg-*-*.*-openpkg.sh michael@428: michael@428: =item B<3. Software Deployment> michael@428: michael@428: Now you can install arbitrary OpenPKG software packages by either using michael@428: the lower-level OpenPKG RPM command or the higher-level OpenPKG tool michael@428: chain build command. As a simple illustration example the GNU Bash michael@428: package of OpenPKG is installed. michael@428: michael@428: # build and install GNU Bash: michael@428: $ /openpkg/bin/openpkg build bash | sh michael@428: michael@428: =item B<4. Software Usage> michael@428: michael@428: Finally, you can use the deployed software. Either through explicit michael@428: paths (reasonable if leveraging OpenPKG's multiple-instance feature) or michael@428: implicitly by merging the OpenPKG instance into the local environment. michael@428: michael@428: # explicit usage: michael@428: $ /openpkg/bin/bash --version michael@428: michael@428: # implicit usage (alternatively) michael@428: $ eval `/openpkg/bin/openpkg rc --eval all env` michael@428: $ bash --version michael@428: michael@428: =item B<5. Go Ahead!> michael@428: michael@428: Want to know more now? Please read the manual pages of at least the michael@428: deployment commands and then proceed by searching and deploying even michael@428: more software into your OpenPKG instance. michael@428: michael@428: # read manual pages: michael@428: $ /openpkg/bin/openpkg man search michael@428: $ /openpkg/bin/openpkg man build michael@428: michael@428: # search for a package michael@428: $ /openpkg/bin/openpkg search [-v] michael@428: michael@428: # deploy even more packages michael@428: $ /openpkg/bin/openpkg build \ michael@428: [-D[::]with_] \ michael@428: [-D[::]with_] \ michael@428: ... | sh michael@428: michael@428: For instance, to install and start an Apache HTTP server with SSL/TLS michael@428: support you can use: michael@428: michael@428: $ /openpkg/bin/openpkg search -v apache | more michael@428: $ /openpkg/bin/openpkg build -D with_mod_ssl=yes apache | sh michael@428: $ /openpkg/bin/openpkg rc apache start michael@428: michael@428: =item B<6. Cleanup> michael@428: michael@428: OpenPKG has not convinced you? Well, it's a pity, but no problem. You michael@428: can easily get rid of anything you installed at once (both the OpenPKG michael@428: instance and any of its OpenPKG packages) with the following simple michael@428: command: michael@428: michael@428: $ /openpkg/bin/openpkg rc all stop michael@428: $ /openpkg/bin/openpkg rpm -e `/openpkg/bin/openpkg rpm -qa` michael@428: michael@428: =back michael@428: michael@428: =head1 SEE ALSO michael@428: michael@428: OpenPKG local documentation can be viewed the command "B michael@428: I", where I is one of the following commands: michael@428: michael@428: index OpenPKG package indexing michael@428: search OpenPKG package searching michael@428: mirror OpenPKG package mirroring michael@428: build OpenPKG package building and installing michael@428: rc OpenPKG run-command facility michael@428: lsync OpenPKG local area synchronization michael@428: michael@428: stack OpenPKG software stack generation michael@428: makeproxy OpenPKG proxy package generation michael@428: dev OpenPKG development tool michael@428: michael@428: rpm RPM package manager michael@428: rpm2cpio RPM payload utility michael@428: rpm-config RPM C API utility michael@428: rpmtool OpenPKG RPM packaging helper tool michael@428: michael@428: license OpenPKG license management michael@428: release OpenPKG release information michael@428: register OpenPKG registry client (obsolete) michael@428: michael@428: sea Shell Execution Archive tool michael@428: uuid Universal Unique Identifiers tool michael@428: michael@428: Additionally, OpenPKG can be found under the following locations on the michael@428: Internet: michael@428: michael@428: http://openpkg.org/ OpenPKG Project (Distribution) michael@428: http://openpkg.com/ OpenPKG GmbH (Framework, Support) michael@428: http://openpkg.net/ OpenPKG Foundation e.V. (Packages) michael@428: michael@13: =cut michael@13: