NuTyX 10.0NuTyX is one of only two Linux distributions in the DistroWatch database based on Linux From Scratch. The distro caught my attention as I am hoping to one day find the time and courage to build a custom Linux distro from source. NuTyX seemed to be a distro that would allow me dip my toes in Linux From Scratch.
NuTyX is available for both 32- and 64-bits computers and, by default, uses SysV for system initialisation. For people who just want a working system out of the box there are ISOs for various desktop environments, while more adventurous users can try a minimal ISO. Interestingly, it is also possible to install NuTyX from within another Linux operating system. As my aim was to tinker I chose the latter option.
The installation is done via a script called install-nutyx. There are various things that need to be done before you can run the script. You need to make sure you have a spare partition and you will need to format the partition and mount it on /mnt/NuTyX. After downloading the "base collection" and running the script you also need to manually add NuTyX to GRUB. The documentation is minimal and not always correct for all distributions - it, for instance, explains that the GRUB entry should be created in /boot/grub/grub.cfg while, on my Fedora system, that path should be /boot/grub2/custom.cfg - but I got the job done in about five minutes.
NuTyX 10.0 -- Installing NuTyX from within Fedora (full image size: 192kB, resolution: 1366x768 pixels)
After rebooting my laptop and selecting NuTyX from the GRUB menu I was presented with a basic graphical installer via which I had to select my keyboard layout and network card, confirm the current date and time and create a user account. By default NuTyX doesn't create an account for the root user but you can do this manually.
At this point we have only got the above-mentioned base collection installed. A "collection" is a group of packages that provide a certain function. The base collection provides the bare minimum (just 111 packages) so you will almost certainly want to enable other collections. For instance, there are collections for command line utilities and graphical applications as well as collections for six different desktop environments (GNOME, KDE, LXDE, LXQt, MATE and Xfce). I couldn't find any information about how to get access to these collections but did get a fairly quick response to a question I posted on the NuTyX forums. The trick is to manually add collections to your /etc/cards.conf file. As most of the NuTyX forums can only be accessed by creating an account I will present my cards.conf file here:
# Base collection dir /var/lib/pkg/depot/base|http://downloads.nutyx.org base /var/lib/pkg/depot/base # CLI utilities dir /var/lib/pkg/depot/cli|http://downloads.nutyx.org dir /var/lib/pkg/depot/cli-extra|http://downloads.nutyx.org # GUI utilities dir /var/lib/pkg/depot/gui|http://downloads.nutyx.org dir /var/lib/pkg/depot/gui-extra|http://downloads.nutyx.org # GNOME desktop dir /var/lib/pkg/depot/gnome|http://downloads.nutyx.org dir /var/lib/pkg/depot/gnome-extra|http://downloads.nutyx.org # MATE desktop dir /var/lib/pkg/depot/mate|http://downloads.nutyx.org dir /var/lib/pkg/depot/mate-extra|http://downloads.nutyx.org # Branch (see https://www.nutyx.org/en/dictionary#13) version current # Locale locale en
In this cards.conf file I only enabled the GNOME and MATE desktop environments. To enable other desktops, simply replace "gnome" or "mate" with the name of your preferred desktop.
NuTyX's package management tool is called Cards, which is an acronym of Create, Add, Remove and Download System. Cards is a fork of CRUX's pkgutils utilities and can be used to manage binary packages and to compile and install packages from source. It is not recommended to mix both methods, and as a new NuTyX user I decided to stick with managing binary packages.
Cards' syntax is straight-forward. After I had updated my cards.conf file, for instance, I could refresh the repositories and check for updates with the commands "sudo cards sync" and "sudo cards diff". We can search for packages with "sudo cards search <package> and install a package with "sudo cards install <package>". To make things even easier there are six aliases for Cards commands. For instance, instead of running "sudo cards sync; sudo cards diff" we can simply run the command "check". Personally, I found the aliases counter intuitive - running the "check" command without "sudo cards" just feels wrong.
Like NuTyX itself, Cards is somewhat minimal. It covers all the basics though, and it is very fast. I also appreciate the Packages section on the NuTyX website, which can be used to search for packages and collections.
NuTyX is a small project and the number of packages available is therefore limited. That said, there were only a handful of applications that I couldn't find in the repositories/collections. My favourite music players (moc and Quod Libet), password manager (pass), screenshot tool (Shutter) and RSS reader (Liferea) weren't available. There were, however, decent alternative applications. For instance, the Keepassx password manager and music players such as Rhythmbox and Clementine are in the repos.
Another thing worth mentioning is that most of the software NuTyX provides is bang up to date. In my cards.conf file I had enable the Current branch, which is roughly equivalent to Debian's Testing branch (other NuTyX branches are Stable and Development). When I installed the MATE desktop I was pleasantly surprised to find that I got MATE 1.20, which was released on February 7th. Similarly, I got VLC 3.0, which was released on the February 9th. NuTyX 10 was released on January 17th, so clearly new packages are being made available very quickly.
Almost all the software I tried worked. The one exception was Claws Mail, which somehow wasn't able to securely connect to my mail server. I also found that launching the vi text editor would open a rather minimal editor called e3 (you can undo the damage by deleting the /bin/vi symbolic link).
Getting a working desktop environment
Installing a desktop environment in NuTyX is easy enough. To get the MATE desktop I needed to install just three packages: mate, mate-extra and lxdm (the login manager). That won't give you a fully functioning desktop environment though. Applications such as a browser, e-mail client and office suite need to be installed separately. The same goes for fonts - by default only one font family is installed ("Luxy").
The real work starts after you have installed your favourite applications and things like fonts. One of the first issues I encountered was that MATE ignored the (UK) keyboard layout I had selected during the install. The output of the locale command and the contents of the /etc/sysconfig/console file were correct but MATE's Keyboard Preferences showed I was using the US keyboard layout. To change the layout I had to install xorg-setxkbmap and edit the /etc/X11/xorg.conf.d/20-keyboard.conf file.
There are many other things that won't work out of the box. You may need to install a driver for your graphics card and a package to get your laptop's trackpad working (xorg-xf86-input-synaptics). If you want wireless Internet you will want to install network-manager-applet. If you want the usual home directories ("Documents", "Downloads" etc.) you can install xdg-user-dirs. If you find that there is no "Suspend" option in the logout menu you need to install pm-utils. The list goes on.
In other words, many of the things that work out of the box in distributions such as Debian and Fedora need to be done manually in NuTyX. This is, of course, by design - NuTyX is based on Linux From Scratch and made for tinkerers. I was anticipating there would be issues to be solved and found the experience quite gratifying - it is nice to fix issues, and in the process I learned a few things about the various packages needed to get a proper desktop Linux system.
That said, there were two things I wasn't able to fix: I couldn't find a way to change my monitor's brightness level and I wasn't able to connect to a VPN. I also ran into a few small bugs. I found, for instance, that changing your user password in MATE doesn't work because the passwd utility isn't in /usr/bin/ (with NuTyX the binary is /bin/passwd).
NuTyX 10.0 -- Changing the user password (full image size: 877kB, resolution: 1366x768 pixels)
Still, I did manage to get a usable desktop environment. And I have to say that I greatly enjoyed the MATE experience. The default configuration doesn't look great but after installing the Arc Theme (available in the repositories), replacing the traditional menus with the Brisk menu and tweaking the panels I had a fairly modern-looking desktop that was still blazingly fast.
NuTyX 10.0 -- The MATE desktop with the theme and icons (full image size: 101kB, resolution: 1366x768 pixels)
The main criticism I have of NuTyX is that the project's documentation is lacking. For a project that is based on Linux From Scratch I expect much more information about how the distro works. Worse, some of the documentation is incorrect and/or poorly written. I have already mentioned the information about manually adding NuTyX to GRUB, which refers to a configuration file that has different locations on different distros. The same is true for the documentation about wireless networks. The information did point me in the right direction: I needed to create a file named /etc/sysconfig/ifconfig.wlp3s0. However, what the contents of that file should be was unclear.
I realise this criticism is a little unfair. As far as I can tell NuTyX is the work of a single person whose first language is French. The person has done an amazing job. Still, while trying to fix various issues I found that the NuTyX website rarely provided useful documentation. I also found it frustrating that information I found elsewhere on-line often wasn't applicable to NuTyX. If you want to use a VPN you will find plenty of information for mainstream Linux distros. With NuTyX you are pretty much on your own.
In this review I have only really scratched the surface. Earlier, I mentioned that you can use the Cards package manager to build packages from source. That was something I wanted to cover in this review, and I did test the "ports method" in a virtual environment. Sadly, I failed at the first hurdle: the very first package, xorg-server, wouldn't install because of a missing dependency (xcb).
At that point I decided to give up on NuTyX's more esoteric features. There was another interesting option I had wanted to check - moving from SysV to systemd - but, frankly, I was slowly losing the will to live.
That is not to say that I had enough of NuTyX. I am happy with the NuTyX MATE install on my laptop. True, I didn't get everything to work but it does feel like it is my own distro. Plus, it is the most responsive distro I have ever used. The system boots very fast, searching and installing packages takes just a few seconds and even large applications such as Firefox and GIMP launch instantly. I am not sure if that is the result of less bloat but it sure is a pleasant experience.
In summary, if you like tinkering and are interested in Linux From Scratch then NuTyX is an excellent place to start. Getting everything to work will take plenty of effort and the project's documentation isn't great, but there is a forum with a friendly and helpful developer. Also, there are plenty of interesting features to explore. You will need stamina though - lots of it!
* * * * *
Hardware used for this review
My physical test equipment for this review was a Lenovo Thinkpad X220 with the following specifications: