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.
|