Search

Review: CRUX 2.3

March 22nd, 2007 by james

Turning away from the everything-and-the-kitchen-sink distributions for a moment I now turn my attention to a light-weight distribution aimed at being as simple as possible while still being up-to-date. CRUX 2.3, released on March 20, 2007, attempts to fulfill such a role.

What is CRUX?

From the CRUX website:

CRUX is a lightweight, i686-optimized Linux distribution targeted at experienced Linux users. The primary focus of this distribution is keep it simple, which is reflected in a straightforward tar.gz-based package system, BSD-style initscripts, and a relatively small collection of trimmed packages. The secondary focus is utilization of new Linux features and recent tools and libraries. CRUX also has a ports system which makes it easy to install and upgrade applications.

Based upon this description we can safely assume this distribution, while meant to be simple, is going to be lacking a lot of the niceties of more full featured distributions.

Download and Installation

Via BitTorrent, I downloaded the CRUX 2.3 ISO (torrent here) which went pretty rapidly as the file was only about 244MB.

I decided to try this bad boy in QEMU on my Sabayon Linux 3.3 install and on an older Dell OptiPlex GX220. The test under QEMU was mainly to get some screen shots.

The boot screen came up, and I selected the CRUX boot option. It booted up fine. Very simple so far. No extra splash or color to the boot screen or the kernel loading. These things aren’t a big deal, but it is a change from the past half dozen reviews. It was almost refreshing to see all the kernel messages for a change.

Crux boot loader
CRUX boot loader… nothing fancy here.

Now I pulled up the CRUX Handbook because there is no automated installer or anything. You need to follow the installation instructions from the handbook. This involves manually partitioning your hard disk and making the file system on it and creating a swap partition.

So following the directions in the handbook I partitioned and created my file systems. I decided to make a 256MB swap partition, a 10GB system partition, and a /home partition comprising of the rest of the Dell’s hard disk. I used ReiserFS for the file systems because that’s what the handbook recommends. I then manually mounted the root partition and the /home partition, and enabled my swap partition.

crux login prompt
Logging into CRUX from the install CD

Following this I ran the setup script. The setup script was very simple and didn’t ask many questions. I selected to install the entire CRUX system (core, optional, and xorg). For complete screen shots of the install procedure check here.

Crux setup program
The CRUX setup program

Once the installation was finished a log file was displayed, and according to the handbook a successful installation means the last line of the log says “0 error(s)“, which it did. Installation was fairly quick. All told it took less than 10 minutes from partitioning my drive to the completion of the setup program on an older P-III 1Ghz. (QEMU took far longer… 25 minutes or so.)

After setup was complete I was back at the command prompt and back to following the handbook’s installation instructions. The next step was to chroot into my newly installed CRUX environment and compile a kernel for it. I also had to manually setup my /etc/fstab with the partitions I made. I also had to edit some other configuration files manually based on the instructions in the CRUX handbook, including manually configuring my network settings. After configuring these files I followed the handbook instructions to compile and install a new kernel for my fresh install and setup the LILO boot loader.

kernel configuration
Configuring the Linux kernel

The kernel configure and compile took awhile (I didn’t time it but I gave up waiting for it under QEMU and it was done in about 20 minutes on the Dell) and I didn’t really customize the kernel configuration. I went through some menus and found the pre-selected options should be suitable to both of my test systems.

Once the kernel was installed I edited the /etc/lilo.conf file so it knew about my newly compiled kernel and ran lilo. I exited my chroot environment, unmounted everything and rebooted. At this point I gave up trying it under QEMU because the Dell was working much faster and was closer to a real-life test anyway.

First Impressions… Finally

The install process was pretty tedious. All the previous distributions made me feel spoiled in terms of their installs. The last time I went through a distribution install procedure like this was when I was installing Gentoo a few years ago.

In any case, CRUX booted up fine and my network was working properly. It brought me to the console login screen without incident. So I logged in as root and I was at console. A fresh clean system awaited me. There isn’t much installed by default, but I had Xorg and installed from the setup program, but no window manager (not even twm!). CRUX claims to include WindowMaker but I didn’t find the wmaker binary, nor was there xclock which tried to start by default. The default Xorg configuration worked in that it displayed on my Dell system, but at 640×480 and my mouse (standard Microsoft 3-button PS/2 mouse) also didn’t work. Did I mention I felt spoiled from the past reviews? :)

I went through xorgconfig and got the resolution and display drivers working fine but for some reason the PS/2 mouse wouldn’t work. I tried the standard driver and the Microsoft ImPS/2 driver and /dev/input/mice and /dev/psaux but none of them worked. I went back through the kernel config and found out the mouse drivers weren’t added by default in the kernel. Re-compiled the kernel and now the mouse worked fine in X. The default xinitrc tries to load twm but the command isn’t found. Neither is wmaker as I said before. I checked the CD to see if the packages were there but they weren’t.

UPDATE: As per comment #1 by “BaalZeBub” below, the default window manager is now no longer WindowMaker but Blackbox.

OpenSSH is installed by default but not enabled, so to get sshd running so I could login remotely I edited the /etc/rc.conf file to add sshd to the SERVICES line so it would run at boot. I then manually ran /etc/rc.d/sshd start which successfully started sshd. To actually be able to login remotely, I added the line “sshd: ALL” to the /etc/hosts.allow file. For a complete test I also restarted CRUX, and indeed sshd started on boot.

Package Management

In addition to the pkgutils binary package system and the BSD-ish ports system, there’s also a more advanced front-end to the pkgutils, ptr-get. prt-get is a CRUX community effort to get dependencies, searching of packages and other features.

To install the ports, once you login you type ports -u and it downloads the updated ports. This took under 30 seconds to complete. To install ntp, I typed prt-get depinst openntpd and it downloaded the source from the OpenBSD FTP and proceeded to compile it. It took only a minute to compile and then I attempted to run it. It provides an /etc/rc.d/ntpd startup script, so I ran it and I got the error:

ntpd: unknown user _ntp

Hmm… So I Google around a bit and find some information regarding this and how to fix it on this page, and so I add the group and user and try again:

# /etc/rc.d/ntpd start
fatal: stat: No such file or directory
dispatch_imsg in main: pipe closed
Terminating

UPDATE: Check comment #4 below for instructions on fixing this problem! I needed to add “–install-scripts” to the prt-get command. This is my mistake and after uninstalling the package and undoing the group and users I made then adding that argument to the command it worked fine. Thanks to “Random Guy” for this information.

I decided not to try digging any deeper into this and see if another program worked. A text browser would’ve been nice to have, so I tried installing elinks. I issued a prt-get depinst elinks which downloaded and compiled the browser which worked just fine.

I wanted to install a window manager for my X, but other than evilwm I didn’t find any in the ports. I did try out evilwm, which according to ps was running, but it didn’t actually seem to load even though I had added it to xinitrc in place of the (non-existent) twm. I just had 3 xterms open (by default from the included xinitrc) and that’s all that happened.

The ports system isn’t as extensive as Gentoo’s portage nor the *BSD’s port systems, but there is a user contributed category of ports that adds more to the base system of available ports. I enabled the contrib ports and re-updated my ports collection. Now I could install and compile WindowMaker, which compiled and worked fine.

If I had wanted to completely update the OS and everything on it, I could’ve issued a prt-get sysup.

Final Thoughts

CRUX 2.3 is simple, but not from a user standpoint. It does require a lot of manual installation and configuration. It also doesn’t come with a bunch of pre-installed software either. But the distribution is meant for experienced users, after all.

It is definitely simple from a system standpoint, however. There’s no complex hardware auto-detection, or heavy weight desktop environments, 3D desktops or proprietary video card drivers. The package system is also pretty simple, but includes source-based package installation. There’s no fancy GUI configuration utilities (or even console-based ones).

It does include a decent handbook (nothing quite on the level of the FreeBSD handbook) and also some user-contributed documentation, but there are no forums and the documentation isn’t particularly extensive. But again, this distro is meant for the experienced Linux user.

Being that a lot of extras are not a part of this distribution it is pretty fast as you’d expect. You don’t even get a bunch of background processes with it but have to manually configure all the services you want.

This distribution is clearly aimed at the more experienced Linux user who wants complete and total control over what goes on in his or her system. If you’re a Linux user who likes doing everything by hand and doesn’t want any of the details hidden from you, CRUX could be a good choice for you.

Personally, for me, I have passed the point in my life where I want to have to deal with all the details by hand. I like being able to install a distribution and have it fully configure to my hardware and have a wealth of ready to use applications in a short period of time. If I was building a specialty box, perhaps I might consider CRUX, but even then I’d probably just stick with Debian stable, which is my distro of choice for my servers and workstations at work.

If you like managing your Linux system from top to bottom, CRUX 2.3 may be your distro of choice.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • Netscape
  • Reddit
  • Slashdot
  • SphereIt
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Posted in review, linux |

5 Responses

  1. BaalZeBub Says:

    Crux now comes with blackbox…

    make a ~/.xinitrc file and just put blackbox in it and you should be good. i see QT in ports so once QT is installed compiling KDE should be a breeze…

  2. james Says:

    BaalZeBub:
    Ahh! You are correct! Blackbox is the window manager that CRUX is now using. I didn’t find such information on the site but the blackbox binary is definitely there. Thanks for the information.

  3. Random Guy Says:

    I think some of your problems are related to not running the post-install scripts. A fairly common error, cured by either adding the “–install-scripts” argument to prt-get, or by simply editing its configuration file, /etc/prt-get.conf

  4. james Says:

    Random Guy:
    Ah… thanks for that tid-bit. With that knowledge I just retried installing openntpd “prt-get depinst –install-scripts openntpd” and it worked! Thanks for that information. I will update the review to reference this comment.

  5. Costa Nikou Says:

    I had the same
    “fatal: stat: No such file or directory”
    error. I’m installing Gentoo with openntpd, but this CRUX review page is the only place that actually talks about this issue. My problem was that in /etc/conf.d/ntpd was referencing “/var/empty” as the NTPD_HOME. Once I created /var/empty, all was fixed.

    (sorry to cross post this, but again, it’s the only relevant page that popped up in Google)

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.