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: