This guide goes into detail on how to install Everest.
There are 2 officially supported ways of installing Everest, systemd/glibc/GNU or init/musl/busybox. This guide covers the init/musl/busybox installation as it recieves the most support and is the intended way. For the GNU installation, it may be a good idea to read the Linux from Scratch wiki.
For highly customized installations (such as a custom init), it is recommended to know exactly what you're doing.
Everest may be installed through 2 methods:
- ISO: can be flashed to a usb and booted
- rootfs tarball (RECOMMENDED): unpacked to a directory (usually /mnt) and instaled through an existing distribution.
Note that no matter what option you choose, you will need the rootfs tarball.
Commands prefixed with (user)$
should be run as the normal user.
Commands prefixed with (root)#
should be run as the root user.
Commands prefixed with (chroot)$
should be run as the normal user inside the chroot environment.
Commands prefixed with (chroot)#
should be run as the root user inside the chroot environment.
This guide assumes your system has access to the internet. There are no tools for configuring the network in the iso. Use of a hardwired ethernet connection is recommended.
Obtain the ELIF source tree. This is required for the initial setup.
(user)$ git clone https://git.everestlinux.org/EverestLinux/elif
(user)$ cd elif
Run the setup script, defining your intended method of install.
(root)# elif setup live
(root)# elif setup tar
A new file will be created, called build.conf
.Edit this file and change any settings you wish.
Once you are happy with your configuration, run the build script.
(user)# elif build
This will set up a partial Everest installation at your specified mountpoint.
Chroot into the new installation.
(root)# chroot /mnt/everest
Download the kernel source tree to the Glacier cache.
(chroot)# glacier -c linux
Move the source tree to its correct location.
(chroot)# cd /var/cache/glacier
(chroot)# mv linux.tar.gz /usr/src
(chroot)# cd /usr/src
(chroot)# mkdir linux
(chroot)# mv linux.tar.gz linux
(chroot)# cd linux
Unpack the tarball.
(chroot)# tar -xvf linux.tar.gz
Ensure the source tree is clean.
(chroot)# make mrproper
Configure the kernel.
(chroot)# ./autobuild.sh
OR
(chroot)# make menuconfig
Build the kernel and modules.
(chroot)# make && make modules_install
Copy the kernel image to /boot.
(chroot)# make install
Build an initramfs.
(chroot)# glacier -f dracut
(chroot)# dracut
The following system daemons are recommended to install:
- system logger (sysklogd, syslog-ng, etc)
- cron daemon (cronie)
- ssh daemon (sshd)
- time sync (chrony)
In this example, we will be installing all of these.
Install the packages.
(chroot)# glacier -f sysklogd
(chroot)# glacier -f cronie
(chroot)# glacier -f chrony
Start the services.
On busybox init: (chroot)# esv start sysklogd && esv start cronie && esv start chronyd
On systemd: (chroot)# systemctl enable sysklogd cronie chronyd