CRUX is a lightweight x86-64 Linux distribution targeted at experienced Linux users and delivered by a tar.gz-based package system with BSD-style initscripts. It is not based on any other Linux distribution. It also utilizes a ports system to install and upgrade applications.
CRUX emerged during a period in which a large number of Linux distributions were available, but many differed considerably in their approaches to installation, package management, system configuration, and software selection. Lidén designed CRUX around a deliberately minimal philosophy. The project's documentation describes its primary objective as "keep it simple", with this philosophy applying to the distribution's package system, initialization system, and selection of software. The original system used a simple tarball-based package format and BSD-style initialization scripts, while maintaining a relatively small collection of packages.
Although crux is the Latin word for "cross," the name "CRUX" was chosen by Lidén without an intended technical meaning. According to the project's documentation and historical material, the name was selected because Lidén considered it to sound appropriate and because it ended in the letter "X" and that it "sounded cool," matching the naming style of several Unix and Unix-like operating systems such as IRIX, Ultrix, Mac OS X and IBM AIX. Although crux is also a Latin word, the word itself was not intended to describe a particular technical feature of the distribution.
Contents
Installation
CRUX does not provide a graphical installation program. Installation is performed from a command-line environment provided by the CRUX installation image, with the user responsible for preparing the storage device, creating filesystems, installing the base system, configuring the installed system, building a Linux kernel, and installing a bootloader.
The official CRUX installation image can be written to removable flash media or burned to a DVD. The CRUX 3.8 ISO is processed using isohybrid, allowing it to be used as a bootable USB image as well as optical media. The installation environment supports both traditional BIOS-based systems and systems using UEFI firmware.
Installation process
After booting the installation medium, the user prepares the target storage device. A clean installation requires the creation and formatting of the partitions on which CRUX will be installed. The CRUX handbook documents the use of utilities such as fdisk, mkfs and mkswap for this stage. The choice of filesystem is left to the administrator, although the filesystem used for the root filesystem must have appropriate Linux kernel support either built into the kernel or provided through an initramfs.
CRUX supports filesystems including Btrfs, ext2, ext3, ext4, JFS, ReiserFS and XFS as root filesystems. The installation handbook recommends separating user data from system data, such as by using a separate /home partition, to simplify future upgrades or reinstallations.
On systems using UEFI firmware, the CRUX handbook recommends a GPT partition table and an EFI System Partition formatted with FAT32. The EFI System Partition is mounted during installation and is used to store the bootloader or other EFI boot files.
Once the target filesystems have been created and mounted, the setup program is used to install the CRUX packages. The program asks the user for the location of the target root filesystem and which packages should be installed. The CRUX project recommends installing the packages in the core collection for a standard base installation. Additional packages can be installed later using CRUX's package-management utilities.
After the base packages have been installed, the administrator enters the new system using chroot. CRUX provides the setup-chroot utility as a shortcut for preparing the chroot environment. Within the new installation, the administrator configures filesystems in /etc/fstab, system settings in /etc/rc.conf, locales, hostname and network configuration, and other system settings.
The CRUX installation process traditionally includes compiling a kernel specifically for the installed system. The CRUX 3.8 installation handbook instructs the administrator to configure and compile the kernel source tree using make menuconfig and make all, install its modules, and copy the resulting kernel image into /boot or another appropriate location depending on the boot method being used.
Bootloader
The final stage of a conventional installation is configuring a bootloader or boot manager. CRUX 3.8 does not include a bootloader in its core collection by default. Bootloaders are instead provided through the opt collection, and the setup program provides a menu through which the administrator can select one during installation.
The CRUX 3.8 handbook documents several boot configurations, including GRUB 2 and SYSLINUX on both UEFI and legacy BIOS systems. On UEFI systems, GRUB can be installed to the EFI System Partition, while on legacy systems it can be installed to the Master Boot Record. SYSLINUX can likewise be configured for either UEFI or legacy booting.
LILO, which had historically been used with CRUX, is no longer maintained in the official ports collections. The CRUX 3.8 handbook recommends that users upgrading from CRUX 3.6 or earlier replace LILO with GRUB or SYSLINUX.
Once the kernel, system configuration and bootloader have been prepared, the installation medium can be removed and the computer rebooted into the newly installed CRUX system.
Alternative installation methods
CRUX can also be installed without booting its official installation image. The project's documentation describes custom chroot-based installation methods, which can be useful when the standard installation environment is unsuitable or when the user wants greater control over the initial system. The CRUX documentation notes that a custom chroot installation can require considerably less memory than installation from the official ISO.
The command-line nature of the installation process is consistent with CRUX's overall design philosophy. Rather than providing an automated graphical installation environment, the installation process requires the administrator to configure important aspects of the system, including storage, filesystems, networking, the kernel and bootloader.
Package management
CRUX implements an infrastructure similar to that of BSD-based operating systems for package management. Packages consist of a Pkgfile (which is a shell script), any patches required to adjust the program to work, md5sum hashes used to verify the integrity of the downloaded files and a footprint file listing the files to be included in the packages. These files are downloaded from a CRUX software repository, compiled, and installed using the prt-get frontend to pkgutils. The software sources are downloaded from the websites of their respective upstream at the address specified in the Pkgfile.
Reviews
Simone Rota reviewed CRUX for OSNews: Since to use CRUX you must compile your own kernel and modules, the hardware compatibility list is basically the same as the Linux kernel.(2.4.21 on the tested release). No third-party modules are available on the CD, in case of unsupported hardware the only option is to fetch the drivers from another machine. The bootable CD-Rom kernel is compiled with a relatively small set of options, that should be enough to boot the machine and proceed with installation.



