Musl or Glibc?
Everest supports 2 different C libraries, musl and glibc. This guide should help you decide which to choose.
1 - musl
1.1 Pros
Musl is extremely lightweight and easy to build, compared to Glibc.
As an added bonus, musl is also more secure than Glibc.
Musl recieves the most support from the Everest development team.
1.2 Cons
Musl may not support all programs, especially proprietary programs, or programs using Glibc-specific APIs.
1.3 Who should use musl
Users running a server, doing simple web browsing, or using programs which do not depend on Glibc should use musl.
1.4 Who shouldn't use musl
Users requiring proprietary software that cannot be patched and recompiled against musl, users who require nvidia graphics drivers, or those who use Steam.
While compatibility layers, such as gcompat, can remedy these issues, there is no 100% perfect solution.
1.5 Solutions
Those wishing to run musl, even with incompatible software and hardware, have a couple of solutions:
1.5.1 gcompat
Gcompat is a shared object file that provides programs with Glibc APIs on a musl system. This can be used for running Glibc programs, but CANNOT be used for compiling them.
Install gcompat by running the following:
(root)# gpkg -f gcompat
1.5.2 Glibc chroot
A minimal chroot containing Glibc can be set up very quickly.
First, ensure you have the everest-devtools and everest-buildtools packages installed:
(root)# gpkg -f everest-devtools everest-buildtools
Next, create a directory for the chroot:
(user)$ mkdir your-chroot
Create a filesystem skeleton in the new directory:
(user)$ mkskel -d your-chroot
Install the necessary packages to the chroot:
The following command costs a fair amount of disk space. Ensure you have enough free space before proceeding.
Check disk space with the following command:
(root)# df /
(user)$ mkchroot-glibc -d your-chroot
Finally, use everest-chroot to access the chroot:
(root)# everest-chroot your-chroot
Or, you can manually mount the required filesystems and run:
(root)# chroot --userspec=0:0 your-chroot /bin/sh
2 - Glibc
2.1 Pros
Glibc supports most programs on linux, including proprietary ones.
2.1 Cons
Glibc is very bloated and heavy on resources for what it does.