<p>This guide goes into detail on how to install Everest.</p>
<h2>Prerequisites</h2>
<p>There are 2 officially supported ways of installing Everest, systemd/glibc/GNU or sysv/musl/busybox. This guide covers the 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.</p>
<p></p>
<p>For highly customized installations (such as a custom init), it is recommended to know exactly what you're doing.</p>
<p></p>
<p>Everest may be installed through 2 methods:</p>
<p> - ISO: can be flashed to a usb and booted</p>
<p> - rootfs tarball (RECOMMENDED): unpacked to a directory (usually /mnt) and instaled through an existing distribution.</p>
<p></p>
<p> Note that no matter what option you choose, you will need the rootfs tarball.</p>
<p>Now that we are inside the chroot environment, we can install packages to the system.</p>
<p>Before we start, creating <code>/etc/make.conf</code> is recommended. This is so you can specify extra makeflags, most notably, the <code>-jX</code> flag will allow <code>make</code> to utilize more than 1 core.</p>
<p><code># /etc/make.conf</code></p>
<p>
<p><code>MAKEFLAGS=-jX</code></p>
<p></p>
<p>The following symbols will be used to describe packages</p>
<p> -(!) Vital system package, <strong>do not omit.</strong></p>
<p> -(S) Source package</p>
<p> -(B) Binary package</p>
<p> -(L) Long installation time</p>
<p></p>
<p><strong>(!) (B) Glacier</strong></p>
<p>This package contains the Glacier package manager, which manages installed packages on the system. It uses wget and tar as its backens, both of which are included in the tarball.</p>
<p><i>You will need to cache this package if you wish to build a custom kernel. Prebuilt kernels are available under the names 'linux', 'linux-zen', 'linux-lts', etc. For a custom configuration, the package is called 'linux-custom'.</i></p>
<p><strong>To install a prebuilt kernel:</strong></p>
<p><code>         <*> The IPv6 protocol [CONFIG_IPV6]</code></p>
<p><ahref="https://linuxfromscratch.org/lfs/view/stable-systemd/chapter10/kernel.html">See this page from Linux From Scratch on other recommended kernel customizations.</a></p>
<p><i>If you intend on dual booting and are using an external boot partition, run the following command from <strong>OUTSIDE THE CHROOT ENVIRONMENT</strong></i></p>
<p><i>Warning: Some documentation for the kernel recommends symlinking /usr/src/linux to the kernel source tree, however this is specific to 2.6 series kernels and <strong>MUST NOT BE CREATED</strong> as it can cause conflics with Glacier.</i></p>
<p><i>Warning: The headers in /usr/include should <strong>ALWAYS</strong> be the ones against which your standard C library was compiled. They should <strong>NEVER</strong> be replaced by either the raw kernel headers or the sanitized headers of any other kernel.</i></p>
<p>Create /etc/modprobe.d/usb.conf, which will ensure USB modules are started in the correct order</p>
<p>As a recommendation for easy access to the root account, installing <code><mark>sudo</mark></code> or <code><mark>doas</mark></code> is highly recommended, as it will remove the need to log in as root with <code><mark>su</mark></code> and will only require invoking <code><mark>sudo</mark></code> or <code><mark>doas</mark></code>.
<p>In the case of <code><mark>sudo</mark></code>, the following line will need to be uncommented from <code><mark>/etc/sudoers</mark></code></p>
<p>Install a bootloader capable of loading a Linux system (such as <code><mark>grub</mark></code>)</p>
<p>In the case of <code><mark>grub</mark></code>, install <code><mark>os-prober</mark></code> and <code><mark>efibootmgr</mark></code> (for UEFI systems), then install either <code><mark>grub-bios</mark><code>, <code><mark>grub-uefi</mark></code>, <code><mark>lib32-grub-bios</mark></code>, or <code><mark>lib32-grub-uefi</mark></code>, then run the following commands to install: </p>
<p><i>Warning: Highly customized configurations may cause the bootloader to break. It is recommended to edit </i><code><mark>/etc/make.conf</mark></code><i> before building this package.</i></p>