CRUX Linux (simply CRUX for now on) is a source-based Linux distribution created by Per Liden, targeting advanced and intermediate users.
As reported on CRUX Website, the main philosophy behind the distribution is to “keep it simple”. Update: Screenshots added.
Disclaimer: I’ve been a CRUX Linux user for a while and I recently became a CLC (Crux Linux Community) maintainer, though I still think of myself more as a user than a contributor. That said, I’ll try to be as impartial as possible writing this review.
The official CRUX distribution is available for i686 systems only; however a contributed i586 ISO image is available and a PPC port is on the final stage (rc3 at the time I’m writing)and should be available soon at http://www.crux-it.org.
Version reviewed and hardware information
I just finished installing CRUX in a Dell Dimension 8100 PIV 1400MHz with 256 MB of RAM, NVIDIA GeForce MX 64Mb, two Maxtor 20GB Hard Disks; PS/2 mouse and keyboard. I’ll use this machine as a reference.
The other machine I loaded with CRUX is a notebook:
Dell Inspiron 5000, 256MB of RAM, ATI Rage Mobility 2P
and 6GB Hard Disk, optical USB Mouse.
I installed the latest version available: CRUX Linux 1.2
A note about Hardware compatibility.
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.
It seems that today every review about a Linux distribution has to
begin with the Installation procedure. With CRUX this section will be
quite different as there isn’t a real installation program.
After booting the CD, you’ll basically have to:
– login as root to a bash prompt;
– use fdisk or cdisk to edit your disk partition(s)
– initialize your filesystem (including swap partitions)
– mount the partition you want to install CRUX onto
– launch the Setup script
The Setup script will show a simple list of available packages
you can choose to install on your system. Notably, you can initially
choose if you want a fresh installation or an upgrade from a previous
release. From my past experience I can say that upgrades work
as expected; I never found particular problems during the procedure.
The Setup script took less than 10 minutes to complete on the
See next section for a brief list of available packages.
At this point, manual editing of some configuration files
is needed (i.e. /etc/fstab, /etc/rc.conf). Vi or pico are
the available editors during setup.
Next step is to reboot the machine and compile your
custom kernel; after this you’re ready to boot the final
system for the first time.
Packages are divided in two categories:
– base: around 30 packages necessary to build a barebones
system: zlib, gcc, glibc, sed, binutils, etc. and few standard
daemons: cron, sendmail.
– opt: again about 30 packages with optional software: xfree86,
openssh, windowmaker, gtk, mozilla, cdrtools, etc.
The default (and only) window manager is WindowMaker. The
screenshot in this page shows the default desktop.
As you can see the “keep it simple” motto is reflected in the number
of packages available. The ISO image is less than 200MB and only a
small set of carefully chosen applications is available.
But don’t worry: a selection of additional packages
is available through the port system.
The port system
Among optional packages you can choose during setup, the one called “ports” will provide a *BSD-style port tree for CRUX. This system allows the user to keep the packages up-to-date and install contributedports into the base distribution. The number of third-party applications available via the port system is at the moment not comparable with other mainstream distributions. Still you can find many common server and desktop software as apache, mysql, kde (3.1.4), Gnome (2.4.0), mplayer and so on.
More than this, creating a port is very easy and you can always
use a personal collection of ports for the ones not present
in the contributed collections.
The third-party utility prt-get (strongly recommended)
is a very useful tool for installing ports and take care of dependencies.
The following are just few snippets, just to show up typical commands
you need to type for common maintenance actions:
# synchronize the port tree. ports -u # download, compile and install xfce4 and all its dependencies prt-get install `prt-get quickdep xfce4` # A new version of xfce4 is out? No problem prt-get update xfce4 # want to upgrade the entire system? prt-get sysup
To be more accurate, prt-get is an addon for the default package
management system (pkgtools) and is a wrapper for the pkgmk and pkgadd
commands, which have no dependency handling (remember the keep it
While the port system is not a new idea, I found it a lot easier
to deal with (especially from the packager’s point of view) than
other solutions (*BSD, Gentoo) for the extreme simplicity of the build
files. This someway sacrifices some customization (ie global
USE flags in Gentoo), but it gives
a “simple and clean” feeling to the entire port system.
The ports are updated regularly about the respective maintainers,
I must say that I’m very satisfied by the frequency both of
security updates (ie recent openssh vulnerabilities) and new
releases of software in general (CRUX was one of the first distros
to have Gnome 2.4 in the port tree if I remember well)
There are no configuration tools in CRUX. Everything is handled by
you and your favorite editor. As I wrote in the introduction, CRUX
targets advanced users, yet I think it is a great solution for
anyone who would like to learn more about Linux.
I particularly appreciate the fact that ports comes with standard,
default configuration files. No modification is applied to packages,
and you get the applications as they are shipped by their
developers. (think of a default Gnome / KDE installation).
A big, relevant exception is documentation: package guidelines
for CRUX indicate to remove all documentation except
man pages: HTML documentation, info pages, etc. are removed from
the final package.
Performance / Stability
The general perception that source distributions and
optimized packages would dramatically improve system performance
is an exaggeration. I don’t think a i586 package would perform
very differently from a i686 package, maybe with the exception of
applications that are very CPU intensive.
Still I found CRUX the fastest distribution I have tried so far;
I have the general feeling that everything runs faster. I don’t
have performance tests to support my impressions, so you’ll have
to accept them as a personal opinion, or try CRUX yourself.
I think I cannot say many things about stability of the system:
this is strictly related to how you manually configure your system
and has little to do with the distribution itself, since there is
no automatic setup or configuration.
In general, packages and ports available are the latest stable
release of the applications, and there are no experimental or testing
versions in the port tree.
I suppose the trimmed number of packages available plays in favor
of the general stability, since there is less possibility of
conflicting applications and libraries.
What’s to improve?
Hardware support could represent a problem during the installation
on some machines: if your basic hardware (i.e. hard disk or motherboard)
is not supported by the kernel on the bootable CD-Rom, you won’t be able to
Another missing feature of the installation CD is support for alternative
filesystems: reiserfs and ext2/3 are supported, while there is no way
at the current stage to install CRUX on a JFS or XFS partition
(though there’s a contributed ISO image with XFS support).
Also, installing or updating large sets of packages would take a long time,
since as said before, CRUX is a source based distribution.
The dependency system is considered an “unofficial” addition,
and installing a long list of dependencies could sometimes require
some extra work. For example, there’s no easy way to install the full
Gnome desktop with a single command.
Installing certain packages requires some manual intervention
with pre or post-install procedures, and you have to dig into a README
file provided with the port. Some of them are distributed with installation
scripts that could be automatically executed by prt-get.
I liked CRUX Linux from day one, and use it daily as my main distribution. If you want to learn a bit more about Linux go get the ISO and start to play with it. If you have some spare time, it could be an interesting experience.
Overall rating: Very Good.
CRUX Linux: http://www.crux.nu
CLC – Crux Linux Community – http://clc.berlios.de
CRUX ITALY (home of the PPC port): http://www.crux-it.org (Italian)
OSNews: Interview With the Creators of CRUX and ROOTLinux
About the Author
I consider myself a pretty advanced user. I’ve been using personal computers for fun and work for about 15 years (and still find there are a lot of things to learn everyday). I study Ingegneria Informatica at Politecnico di Milano – ITALY and work as a developer in a small company I share with a couple of friends.