CRUX is a lightweight, x86-64 Linux distribution targeted at experienced Linux users. It focuses on simplicity and adheres to the KISS principle (Keep It Simple, Stupid). CRUX uses a tar.gz-based package management system, allowing users to build packages from source code [1] with fine-grained control over compilation options. It does not use systemd as its init system, opting for a simpler init system based on BSD-style init scripts.[2]
History
CRUX was founded by Per Lidén.[3] The initial goal was to create a minimalist Linux distribution that was easy to understand and maintain.[4] The focus has consistently been on providing a stable and efficient base system that users can customize to their specific needs. CRUX has had 27 documented releases [5],from 0.9.7 to the current release, 3.8
Features
- Init system: CRUX uses a BSD-style init system[6], consisting of simple shell scripts. This contrasts with more complex init systems like systemd. This design choice emphasizes simplicity and control for the user.
- Package management: CRUX uses a ports-based package management system. This means that packages are defined by "Pkgfiles," which contain instructions for downloading, compiling, and installing software from source code. This approach allows users to customize compilation options and optimize software for their specific hardware.[7] This is similar in concept to FreeBSD Ports or Gentoo's Portage.
- KISS principle: CRUX strongly adheres to the KISS principle. This means that the distribution is designed to be as simple as possible, avoiding unnecessary complexity. This philosophy is reflected in the init system, package management, and overall design of the system.[8]
- No systemd: CRUX notably does not use systemd. This is a deliberate choice to maintain simplicity and avoid the complexity associated with system.[9]
Ports System
CRUX uses a BSD-style ports system, revolving around the packaging system pkgutils , each port contains a Pkgfile which tells pkgmk or prt-get what to do, it is a relatively simple process, that involves fetching the source declared in the Pkgfile (Or if the file is already present and matches the checksum, it extracts it.), Following the compilation steps declared in the Pkgfile while using the optimizations and arguments declared in ```/etc/pkgmk.conf```, this part is declared in the ```build()``` section of the Pkgfile, since a Pkgfile is essentially a BASH script, it can be edited by the end user to match their own needs. [10]
References
- ↑ https://crux.nu/doc/prt-get%20-%20User%20Manual.html
- ↑ https://crux.nu/Main/About
- ↑ https://crux.nu/Profiles/PerLiden
- ↑ https://crux.nu/Main/About
- ↑ http://ftp.morpheus.net/pub/linux/crux/
- ↑ https://crux.nu/Main/About
- ↑ https://crux.nu/Main/About
- ↑ https://crux.nu/Main/About
- ↑ https://crux.nu/Main/About
- ↑ https://crux.nu/Main/Handbook3-8-Package