Review: CRUX Linux

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.

Supported Platforms

Crux Linux 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

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

tested machine.

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.

Available Software

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

Crux Linux 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

simple idea?)

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

install CRUX.

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:
CLC – Crux Linux Community –
CRUX ITALY (home of the PPC port): (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.


  1. 2003-10-02 8:49 pm
  2. 2003-10-02 8:54 pm
  3. 2003-10-02 8:54 pm
  4. 2003-10-02 8:55 pm
  5. 2003-10-02 8:59 pm
  6. 2003-10-02 9:04 pm
  7. 2003-10-02 9:07 pm
  8. 2003-10-02 9:08 pm
  9. 2003-10-02 9:09 pm
  10. 2003-10-02 9:10 pm
  11. 2003-10-02 9:14 pm
  12. 2003-10-02 9:20 pm
  13. 2003-10-02 9:47 pm
  14. 2003-10-02 10:55 pm
  15. 2003-10-03 3:00 am
  16. 2003-10-03 6:55 am
  17. 2003-10-03 7:21 am
  18. 2003-10-03 7:46 am
  19. 2003-10-03 10:49 am
  20. 2003-10-03 12:36 pm
  21. 2003-10-03 12:41 pm
  22. 2003-10-03 1:37 pm
  23. 2003-10-03 2:10 pm
  24. 2003-10-03 3:46 pm
  25. 2003-10-03 3:53 pm
  26. 2003-10-03 4:09 pm
  27. 2003-10-03 4:21 pm
  28. 2003-10-03 4:40 pm
  29. 2003-10-03 4:50 pm
  30. 2003-10-03 6:39 pm
  31. 2003-10-03 8:10 pm
  32. 2003-10-04 12:13 pm
  33. 2003-10-04 5:29 pm
  34. 2003-10-04 9:13 pm
  35. 2003-10-05 5:43 am
  36. 2003-10-05 11:12 am
  37. 2003-10-05 11:35 am
  38. 2003-10-06 10:38 am