HowTo: Finit on Alpine Linux 3.4-3.6
HowTo use Finit to boot an Alpine Linux system. It is assumed that the user has already installed make, a compiler, C library header files, and other tools needed to build a GNU configure based project.
To start with you need to first install libuEv and libite. They
default to install to /usr/local, but unlike Debian and Ubuntu based
distros, Alpine's pkg-config does not look for libraries and header
files there. So the PKG_CONFIG_LIBDIR environment variable must be
used, or change the install prefix to /usr.
The bundled build.sh script can be used to configure and build finit:
alpine:~# cd finit
alpine:~/finit# ./contrib/alpine/build.sh
alpine:~/finit# ./contrib/alpine/install.sh
The installation skips /sbin/init, because it already exists, and
Alpine is hard coded to use it. So you have to change the symlink
yourself to point to finit instead of /bin/busybox.
alpine:~/finit# cd /sbin
alpine:/sbin# rm init
alpine:/sbin# ln -s finit init
Before rebooting, make sure to set up a /etc/finit.conf,
and /etc/finit.d/ for your services. Samples are included in
this directory. Notice the symlinks in /etc/finit.d/, which can be
created at runtime using initctl enable SERVICE. You can also use a
standard /etc/rc.local for one-shot tasks and initialization
like keyboard language etc.