summaryrefslogtreecommitdiff
path: root/README.asciidoc
blob: e96f3ee47672ea62e1b829f2d12a4684cae746a9 (plain)
    1 README
    2 ======
    3 
    4 Process Description
    5 -------------------
    6 
    7 The idea for this project was built upon the concept created for the
    8 link:https://crux.nu/Main/PortGuidelines[Crux Ports] system.
    9 
   10 Pkgimg extends upon this process by enabling the combination of port builds
   11 into a single port output directory. The intent of this is to build filesystem
   12 tarball overlays that contain everything needed to run a given application on
   13 any Linux system (though other operating systems are not explicitly precluded).
   14 
   15 The process looks something like...
   16 
   17 * pkgimg.sh <manifest.txt>
   18   * Create composite fakeroot
   19   * foreach ${port} in ${manifest}
   20     * pkgmk.sh ${port}
   21     * rsync ${port} fakeroot to composite fakeroot
   22     * Cleanup port-specific fakeroot
   23 * Create tarball from composite fakeroot
   24 
   25 At its top, the final tarball should contain a directory structure that roughly
   26 matches the top level of a Linux filesystem (eg: usr, lib, etc, etc) or the
   27 system the tarball will be deployed to. Underneath each of these directories
   28 will be each port's installed files.
   29 
   30 With a composite port tarball built, it can be transferred to a number of
   31 systems and subsequently installed by simply extracting the contents of the
   32 tarball at the top of each of the destination system's root filesystem.
   33 
   34 
   35 Why?
   36 ----
   37 
   38 The author has spent a sizeable amount of time in what is often referred to as
   39 the "DevOps" industry. He was very unsatisfied by speed, reliability, ease of
   40 auditing, ease of reproduction, and ease of backup provided by the typical set
   41 of DevOps deployment tools.
   42 
   43 Portimg was created to remedy this by producing composite immutable software
   44 images for the purpose of easily, quickly, and consistently deploying and
   45 backing out deployments to servers. While this process may not meet every need
   46 of flexibility, it is very reliable and very simple.

Generated by cgit