CRUX 3.6.1Coming into the new year I decided I wanted to simplify things a bit and explore a distribution that didn't have as many features and distractions. I decided to kick off my week with CRUX, an independent distribution with a keep it simple (KIS) approach. CRUX runs on x86_64 computers exclusively and the latest version, 3.6, appears to be focused almost entirely on package upgrades rather than new features.
CRUX runs the classic SysV init software on top of version 5.4 of the Linux kernel. Shortly after CRUX 3.6 was released the project published a minor update to fix a package issue. According to the documentation it is recommended that people do not attempt to upgrade to CRUX 3.6.1 from an earlier version:
Important libraries have been updated to new major versions which are not ABI compatible with the old versions. We strongly advise against manually updating to CRUX 3.6 via ports, since these changes will temporarily break the system.
Since CRUX is a distribution that requires some manual work and does not provide any hand holding, I recommend reading the project's handbook which explains some key elements of the operating system and how to set it up.
I downloaded the 3.6.1 install media which is 819MB in size. Booting from this media brings up a text console where we are automatically logged in as the root user. The live media is quite light, consuming just 40MB of RAM. The usual, basic command line tools are included on the media, but there are no manual pages. There are also no welcome messages or instructions for using or installing the distribution.
Luckily the CRUX website has documentation which explains how to install the operating system. The steps include manually formatting partitions, generating locale data, compiling the kernel, and installing a boot loader.
The installation steps are performed from the command line and are generally performed manually. To begin we should use either the fdisk or cfdisk console partition manager to divide the hard drive. Then we format and mount a partition which will act as the root filesystem. We then run the setup command that opens a series of text-based menus and select the location of our new root partition. We are asked to select which package groups we want with the options being Core, Optional, and X.Org. These software groups are not described, but I believe Core includes low-level userland utilities and X.Org provides graphical software. I am not sure what is featured in the Optional group.
We are then asked to select which boot loader (LILO, GRUB, GRUB-efi, or syslinux) we want. I decided to stick with GRUB. Some packages are then copied to the hard drive partition. The CRUX setup script then reported it had completed successfully, however it seemed to be locked up and would not proceed when I pressed the OK button. With a little experimenting I found it was necessary to scroll to the bottom of the installer's log output that is shown on the screen before the OK button would work and return me to the console.
From there we are expected to manually update the configuration file for background services, generate a locale, and tweak the network settings by editing another configuration file. We then adjust the kernel configuration and compile a new kernel from its source code. Compiling the kernel can take several minutes and, once it has been installed, the documentation says we should configure and install a boot loader.
Here I ran into trouble. I was using a DOS/BIOS style disk layout. The CRUX documentation says to edit the LILO configuration file (/etc/lilo.conf) and then run the lilo command when using DOS layouts. However, there is no /etc/lilo.conf file and no program called lilo, either on the hard drive partition or on the install media. There are instructions for installing GRUB on UEFI-enabled systems and I tried both the steps for this and for installing GRUB on a BIOS system. In both cases, once I had finished the installation steps and rebooted, the system failed to load. My machine would launch and display the GRUB rescue prompt, but there were no boot options. Despite going through the install steps again, I found the GRUB configuration file, while generated, was not populated with the freshly installed CRUX kernel. This, along with the references to the unavailable LILO boot loader suggests to me the documentation is out of date and missing a step or two.
* * * * *
NuTyX 20.12.0Since CRUX was not working out for me, I switched gears and the next day downloaded another keep it simple distribution, this time grabbing a copy of NuTyX. This distribution is built upon Linux From Scratch and uses a custom package manager called cards. The NuTyX project is a rarity in that it is one of the few distributions which allow users to select their preferred init software at boot time. SysV init, systemd, or RuNyX (a modified version of runit) can be selected at boot time. The distribution is available in several editions for x86_64 machines. The desktop editions offered are KDE, LXDE, MATE, and Xfce. I decided to try the Xfce edition, which is a 986MB download.
Booting from the NuTyX media brings up a menu offering to launch a live desktop environment or start the system installer. Both options also give us the choice of loading the operating system into RAM or running it from the live media.
The live session brings up a series of text-based menus. The first one shows us a list of countries, sorted by language and I suppose we are expected to select where we live. We are next shown a list of keyboard layout codes which do not appear to be sorted in any particular order. Next we can choose our network card from a list and pick whether to automatically set up networking. The following screens ask us to set the system clock and make up a username and password for ourselves. These steps seem like part of an installation, but they are just configuring the live desktop.
NuTyX 20.12.0 -- Adjusting the Xfce panel through the settings panel (full image size: 104kB, resolution: 1280x1024 pixels)
At the end we are presented with a graphical login screen where we can sign into the account we just created. The session runs the Xfce desktop. A panel is placed across the stop of the screen and holds the application menu, task switcher, and system tray. There is a launcher dock at the bottom of the screen and a series of icons on the desktop which open the Thunar file manager in various locations. Audio is muted by default and, after a little exploring, I concluded there doesn't seem to be any way to launch the installer from within the live environment.
Since the live desktop was working well, I decided to reboot my computer and launch the installer from NuTyX's boot menu. The installer shows us a series of text-based screens that begin by asking which country we live in. The installer then warns NuTyX should be set up entirely on one partition. Choosing to proceed then causes NuTyX to be installed to the hard drive.
I want to make it clear here I was not asked to partition the disk. I was not asked which partition to use. There was no confirmation before NuTyX wiped my previous operating system and placed itself on the first partition of my hard drive. According to the documentation there are at least three menus we need to navigate to launch a partition manager and format the disk, but these did not appear during my trial. In fact none of the top-level menus displayed in the documentation appeared at any time during the install process.
After it copies files to the hard drive the installer asks if it may install a boot loader. Then the system appeared to be shutting down. A series of errors saying the xdm file does not exist were shown, along with errors about trying to perform actions on a read-only filesystem. Then the distribution appeared to halt without powering off the computer.
I was sceptical about NuTyX starting after seeing the series of errors on the live media, but it did bring up a boot menu. Here we are shown three boot options: RuNyX, SysV, and systemd. These are the three init options. Picking one brings up a second screen asking if we wish to boot in Quiet or Verbose mode. A third menu then appears and asks if we want to launch the LTS version or Latest version. This last screen refers to which kernel the distribution will use. If we don't pick any options, the system will pick RuNyX and boots the LTS kernel in Quiet mode.
The first time the newly installed copy of NuTyX boots, it brings up a series of screens asking us for our keyboard layout, which network card to use, and what we want to use for a username/password combination. These are the same screens shown on the live media and they appear just the first time we boot into the locally installed copy of the operating system.
We are then shown a graphical login screen where we can sign into the Xfce desktop. As with the live media, the desktop has a few launchers for the Thunder file manager on it and the volume is muted.
NuTyX 20.12.0 -- Running Thunar with a dark theme (full image size: 72kB, resolution: 1280x1024 pixels)
I began my test with NuTyX in a VirtualBox virtual machine. I was glad I did this as it avoided wiping out my computer's hard drive during the install process. NuTyX performed well in the virtual environment, the Xfce desktop was very responsive, and the system booted quickly. The desktop did not resize dynamically with the VirtualBox window, but started off with a high resolution anyway. I could also adjust the desktop resolution in the Xfce settings panel.
When I switched over to running NuTyX on my workstation, the operating system booted quickly, ran smoothly, and detected all of my hardware. Xfce was once again unusually fast and I was able to get on-line, watch videos, and listen to music without any problems.
The distribution is quite light, using between 215MB and 235MB of RAM. The amount varied a little at each boot, even with the same init software running in the background. The distribution is relatively small on disk, using just 2.7GB of space, plus any swap partition it can find. This is unusually small and I believe it is because the distribution ships with a minimal number of applications.
I tested the distribution and booted it in both Legacy BIOS and UEFI environments. When running in BIOS mode, everything worked as expected. This was also mostly true of the UEFI environment, with one key exception. When booting the live media in UEFI mode there is a large white "watermark" design that is displayed on the boot menu. This blots out a lot of the text for the boot options. As a result, I did not realize I was booting into install mode rather than the live desktop mode as the first configuration screen or two are the same and I couldn't read all of the boot menu options. As a result, I came to within a hair of accidentally formatting my hard drive prematurely as NuTyX's installer does not ask before it starts wiping and copying files to the drive. When I booted in BIOS mode there was no water mark and the Live and Install boot options were displayed clearly.
The Xfce edition of NuTyX ships with the Firefox web browser, the Ristretto image viewer, and Parole media player. The distribution includes codecs for watching videos and playing audio files. The Xfburn disc burning software is included along with the Orage Calendar application. There is a bulk renaming tool, a text editor, and the Xfce settings panel. Each of these programs worked well. There are not many applications included by default, but what is present worked without any glitches. I especially like Xfce's settings panel as it is fairly easy to navigate and makes adjusting most aspects of the desktop straight forward.
NuTyX 20.12.0 -- Running the Firefox browser and Parole media player (full image size: 277kB, resolution: 1280x1024 pixels)
As I mentioned before, we have our choice of three init packages and two Linux kernels, one that is cutting edge (version 5.9) and one which a long-term support release (version 4.19 in this case).
NuTyX ships with a graphical software manager called flcards which acts as a front-end to the cards package manager. The front-end features a very simple layout with two tabs and two buttons. The tabs are called Packages and Collections. The Collections tab shows available desktop environments we can install. These include LXDE, LXQt, KDE Plasma, GNOME, MATE, and Xfce. The Packages tab displays a long list of all available packages in the distribution's repositories in alphabetical order. To the side is a search box where we can type part of a package's name to filter down the list of packages shown. To install or remove a package we can right-click on it and select an action (remove, install, or cancel). The two buttons in the package manager window refresh our package data from the remote repositories and trigger any actions we have queued.
Next to some packages we find a check mark and I was curious about these at first. Instinct told me this should indicate whether a package was installed or whether it could be updated. However, it appeared as though some software without a check next to it was already available on the system and this confused me for a minute. With a little poking around I discovered my instincts were correct, the check mark indicates software that is already on the system. What had confused me is NuTyX uses the Busybox userland software and some of the functionality of Busybox is duplicated by other packages. For example, wget is available by default through Busybox, but another wget package is available in the repositories and not installed. Installing it will place a second wget instance on the operating system and give the package its check mark.
While the flcards front-end worked for installing new software, every time I installed a new package it would complete successfully and then the package manager would crash as soon as I selected a second package to install. This happened every time I used the graphical front-end.
I want to say that flcards looks quite crude, but it is simple (in a nice way) and very fast. I liked the lack of clutter, even if I gritted my teeth each time it crashed after performing a queued action.
The flcards application does not appear to have a method or upgrading existing packages. For this task I turned to the command line cards program. The cards package manager has straight forward syntax and worked quickly. I tended to use it only for upgrades, but it was pleasant to use and I like how straight forward its usage documentation is.
NuTyX 20.12.0 -- Learning how to use the cards package manager (full image size: 283kB, resolution: 1280x1024 pixels)
The NuTyX distribution provides the expected command line functionality, mostly through Busybox, however it does not include manual pages. This makes the system leaner, but it meant documentation and usage tips had to be looked up on-line.
Earlier I mentioned there are three init implementations we can select from at boot time. The default RuNyX software, which is a modified version of runit, works well. It is super fast and light. The distribution also boots cleanly on systemd, though its shutdown time seems slower. When I tried the SysV init boot option the system failed to load and displayed a series of errors about encountering a read-only filesystem. This surprised me as it looks as though NuTyX's live disc is running SysV init and boots the system successfully on the live media, but not when the distribution is installed on the hard drive.
While CRUX provided me with a lot of work without any benefit this week, I did enjoy my time with NuTyX. The distribution, for all its faults (and there are some important ones), has a simple, lightweight charm to it. There is virtually nothing extra, nothing distracting me, no resource-wasting status panels or pop-ups. The NuTyX distribution is not for newcomers, it expects a good deal of experience. But what I liked was NuTyX hits a sweet spot between including useful, friendly tools, and trimming the fat. There are graphical web browsers, a front-end for package management, and a system installer to help us get up and running. Otherwise we are left to our own devices and encouraged to set up just what we need. NuTyX is pleasantly light and fast.
However, as I said, there are problems. The dual combination of having a UEFI boot menu that is partially obscured, combined with a system installer which jumps right to formatting and taking over the primary partition is not good. Really not good. Wiping an operating system without warning is a big problem and the fact this behaviour does not match the documentation is an even bigger problem because the documentation indicates this will not happen without going through multiple configuration steps and a warning.
There were some other smaller issues. Having the package manager crash after each installation was an annoying speed bump in fetching new applications. There are fewer applications available to NuTyX users than what some other distributions provide. NuTyX offers about 1,700 packages at the time of writing up against about 59,000 in Debian, for example. I did not always find what I was looking for in the repositories, though most big-name items were available.
Finally, the lack of local manual pages was an unwelcome surprise. I've occasionally said distributions should either be easy to figure out due to friendly interfaces or have excellent documentation. Ideally we should have both, but it is a bad sign when we have neither.
For an expert Linux user who wants a lot of options (especially when it comes to kernel and init packages) NuTyX is an attractive choice once it is up and running. However, the current version has some bugs which need to get sorted out before I would recommend trying to install it.
* * * * *
Hardware used in this review
My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications: