README ====== Process Description ------------------- The idea for this project was built upon the concept created for the link:https://crux.nu/Main/PortGuidelines[Crux Ports] system. Pkgimg extends upon this process by enabling the combination of port builds into a single port output directory. The intent of this is to build filesystem tarball overlays that contain everything needed to run a given application on any Linux system (though other operating systems are not explicitly precluded). The process looks something like... * pkgimg.sh * Create composite fakeroot * foreach ${port} in ${manifest} * pkgmk.sh ${port} * rsync ${port} fakeroot to composite fakeroot * Cleanup port-specific fakeroot * Create tarball from composite fakeroot At its top, the final tarball should contain a directory structure that roughly matches the top level of a Linux filesystem (eg: usr, lib, etc, etc) or the system the tarball will be deployed to. Underneath each of these directories will be each port's installed files. With a composite port tarball built, it can be transferred to a number of systems and subsequently installed by simply extracting the contents of the tarball at the top of each of the destination system's root filesystem. Why? ---- The author has spent a sizeable amount of time in what is often referred to as the "DevOps" industry. He was very unsatisfied by speed, reliability, ease of auditing, ease of reproduction, and ease of backup provided by the typical set of DevOps deployment tools. Portimg was created to remedy this by producing composite immutable software images for the purpose of easily, quickly, and consistently deploying and backing out deployments to servers. While this process may not meet every need of flexibility, it is very reliable and very simple.