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
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.
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
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)
Configuration
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.
Conclusions
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.
Links
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.
How is it possibly a bane? There is no such thing as ‘too many distros’.
Distributions are compatable. You can probably only name 2-3 programs that dont run on almost all distributions (not ‘official’ support, but actually run).
If you dont like choices,use Windows. If you dont want to have to research 100 distributions, just use one of the major ones,they’re fine.
what’s the difference between Crux and Gentoo (my sweet gentoo ) ?
I agree with Phuqker- it is both a blessing and a bane.
How is it a bane? There are a multitude of Linux distros, the vast majority of which inhabit the same niche, making the distro somewhat pointless. That’s a bane because the amount of working being put in to duplicate work that has already been done, or is being done by someone else, could be used for creating something new. Adding something Linux and distros based on it don’t already have.
Yes, most programs can work on any distro- after the user put in some time figuring out how to get it to work. A lot of commercial apps provide a rpm and a tgz- RPM for the majority of their customers, and a tarball for everyone else. I won’t go into why- it’s been covered here and elsewhere a million times- but tarballs make poor packages by themselves. If there was a standard, things would be a lot easier, there would a lot less work being wasted, etc etc. It’s not about having choices- when it comes down to it, you have almost as few real choices in the world of Linux as you have with Windows. There may be 100x more labels and names, but what is that other than presentation?
That said, I’m never one to say to anyone working on a new hobby OS, gui toolkit or distro that they are wasting their time. A project is often its own reward.
I don’t use a distribution anymore (I build from scratch), but when I need a distro, CRUX is my favorite. If you are experienced enough to manage your own system without frontends then CRUX is a godsend…it doesn’t lock you into it’s own complicated 6-runlevel boot system (my systems generally have two bootscripts, rc.start, and rc.shutdown, and rc.reboot as a symlink to rc.shutdown). Building your own packages is really easy too.
I suggest all you die-hard Gentoo zealots out there give CRUX a try…much more hardcore, I must say.
There is one problem with the ports system in crux, however. A lot of packages (I noticed them when trying to install Gnome) have post install scripts to get them to work right. Gtk2 and pango are two that come to mind. I think the package system only records which files get installed with the /bin/install program, and not by other methods. Gtk2, for example, creates an immodules file in <prefix>/etc/gtk2 with it’s own program, and the command that creates that file doesn’t get run automatically.
prt-get lets you know when you’ve installed packages that contain post-install scripts, but I think that it doesn’t run them automagically due to security reasons.
I think the package system needs to handle more than just the copying of files, and deal with make install properly.
what’s the difference between Crux and Gentoo (my sweet gentoo ) ?
Crux isn’t entirely source-based. It’s got a basic working system’s worth of i686-optimized slackware-style packages, plus a simple, elegant ports system on top of it to build off of (not without it’s own problems, but portage ain’t perfect either).
Crux is also more flexible. You’ll have to try it to understand how simple and extensible it is.
I love the CRUX concept. It led me to my current favorite distro, based on CRUX, ArchLinux. http://www.archlinux.org
Love CRUX, … want more packages, … try ArchLinux !!
I like Crux and have been using it on one of my PCs for a couple of weeks now. It’s basically a really minimal distro and isn’t as focused on configuring and compiling everything like Gentoo. It takes very little time to set up a usuable Crux system from what I’ve heard it can take quite a while to build a Gentoo system (I haven’t used Gentoo so I can’t really compare).
//
How is it a bane? There are a multitude of Linux distros, the vast majority of which inhabit the same niche, making the distro somewhat pointless. That’s a bane because the amount of working being put in to duplicate work that has already been done, or is being done by someone else, could be used for creating something new. Adding something Linux and distros based on it don’t already have.
//
What do you mean? People created a distribution because they didnt like the current ones, so they are NOT the same. They may be similar, but there are always differences.
With that argument, Pepsi and Coke should consolidate, BurgerKing and McDonalds, Vanilla and Chocolate (hey,they’re both icecream)….
Choice is a good thing, but is it really choice when there are oodles of versions of practically the same OS? Really what is the difference? This CRUX sounds like it’s been stripped of hand-holding so that the user can install it however they want at the get go by compiling the kernel. Yet it still looks and I bet it operates the same as any other distro.
So what does CRUX have that the big distros (Red Hat, Mandrake, SuSE, etc.) don’t?
The obvious answer is that it isn’t commercial.
While im not opposed to Commercial Linux distros, you get ACTUAL (and free) support from the community driven distros.
Plus, you know the developers motives aren’t all about money.
You might want to check out Arch Linux, its kind of a mix of Crux and Slackware. You install the i686-optimized slackware-like packages, and then you can use stuff from it’s ports-like system called ABS. Everything is very simplistic based and there aren’t any configuration utilities to get in the way, I switched Linux distros for what seems like an eternity until I found Arch Linux. They tend to keep most things quite up to date and if a package isn’t updated yet, you modify one line in a text file(the version number) in it’s dir in ABS and type makepkg, and then it compiles and then packages it all for you to install with it’s awesome package manager, Pacman.
LiveCD to Check it Out: http://amlug.org/new-projects/live-cd/al-amlug-live-cd.html
Official Site:
http://www.archlinux.org
Why would a big IT manager bother looking at CRUX? He wouldn’t. If an IT manager wants to run Linux, he goes and buys SuSE or RedHat. These other distros exist because the Linux userbase isn’t as homogenous as the Windows one, and the little differences (that some say are just a matter of taste) really matter to some people.
I’m all fine and dandy with having button-down commercial distros for the professional crowd, but *somebody* has to cater to Linux’s very large geek contingent.
Its also retarded to bitch about something that will probably have 0% impact in the mainstream. If there isn’t enough interest in Crux to maintain it, then it will go away. If there is enough to keep it around, are you going to begrudge its users the choice to use whatever OS they want?
You can compare this sort of thing to the numerous varieties of wine or home-brewed beer. The bohemian masses may think, “What’s the difference, its all just liquor!” but thankfully, the masses don’t get to decide what everybody else does with their time.
PS> This “divided developer effort” thing is baloney. Developers choose fringe projects because they have no interest in working on existing projects. If they weren’t doing this distro, it would be highly unlikely they’d be working on RedHat instead.
Sorry bud, but that’s a bad analogy. Now if say McDonald’s sold franchises with different names and different colors. Packaged with different management systems but sharing similar products. That taste.. wow similar. I like my Crux packaged burger better than the Red Hat Mac!
jbett> Get analogy but would you really eat at a restaurant called CRUX? 8P
My first impression when I was this was ‘ohh nice!’.. It reminds me of Slackware, and gentoo, my 2 favourite distros.. It seems to be kinda ‘in-between’ them..
I’m definately gonna go try it out
Yet another distro treading the well beaten path. And who said OSS was [i]innovative<i/>?
Hi everybody,
It seems I missed JFS dupport has been available since CRUX 1.0. My mistake, sorry!
Another correction: the default package management system is called pkgutils, not pkgtools.
Have anice day,
Simone
Yep, anything wrong with that?
Seriously: Smaller footprint, better hw-support, running native linux apps without massive installation of related linux rpms, less complicated setup (in my utterly personal opinion). That said, I’ve been through a LOT of distros and systems but so far the only ones that has been workable for me is FreeBSD, NetBSD and CRUX. Since I <em>really</em> don’t like dependencies, althoug they may have their charms, CRUX it is.
Does crux make it easier to build a monolithic kernel? Loadable kernel modules are nice but why have added complexity with ver little benefit.
honestly, i don’t see the point in these distributions, setting them up seems longer and more complicated and for what? so you can have a linux system with the same apps, settings and speed (more or less) as binary distros?
i have a debian system and i have only ever built a kernel, lame and mplayer from source, for more customisation reasons than anything else.
i’m not trying to start a flame war here, i just don’t see the point in installing and maintaining a linux box way more complicated than it has to be.
each to his/her own i guess…
The idea of crux is to KISS (keep it simple, stupid).
CRUX isn’t a source based ditro, it has pre-compiled binaries for the i686 system on the CD meaning you must have i686 CPU (PPro/P2 or higher). The CD allows you to install with just the need for a compile of the kernel.
You get a very small system when CRUX is installed with just the packages you want. My CRUX install is just under 400mb and it does everthing I need it to with out the extra fluff and its all optimized for my system. I need it, as the system is only a dual P2/300.
If you fx try to “apt-get install mplayer” I’m not 100% sure what would happen (got fed up with debian before that point) but when I tried to install it through the ports system in freebsd it wanted to download and compile qt, among many other things wich add some functionality but really isn’t necessary. I suppose apt-get would do something similar. This adds bloat, or extra work since I manually would have to track down what just got installed and remove it or alternatively force the installation (that pretty much defeats the purpose, right?), and risk that the app doesn’t start at all claiming som lib is missing or such. And RPM’s aren’t any better..
The piont of source based distros from _my_ point of view is that you don’t get trapped in various dependencies problem, at least not as much as in various binary dists. RPM-hell someone? Besides on this box debian is slow as hell compared to CRUX.
Both approches has their pros and cons, however, I prefer to be the one who decides what get installed, and I don’t want to fight the system about it. If you think it’s alright to have your basic install to include everything AND the bathtub I suppose distros like debian/redhat will do.
One final point though… The more apps, the greater the risk of beeing compromized.
Hey that screenshot looks more like IceWM than Windowmaker to me. since when did Windowmaker have a panel?
Ok, so we’ve got Yet Another Source-Based Distro, touting the mantra “keep it simple” (rings true enough, to be sure), which probably means that there isn’t all that much to offer that couldn’t be sought in other distributions. While I’m not going to question the existance of said Linux distributions, I will ponder aloud: “What is the point of ‘screenshots’ if the source for the windowing system and window manager are the same as any other distribution currently available”? With the “lightweight” theme in mind, it doesn’t sound like he’s rewritten XFree86, nor Blackbox, Sawfish, Afterstep, et al. So..what’s the point?
Hey that screenshot looks more like IceWM than Windowmaker to me. since when did Windowmaker have a panel?
I submitted 3 screenshots for the review: Setup, WindowMaker and another one with IceWM + ROX + SciTE + Mozilla, just to show up you some of the apps available in contibuted repositories.
“I submitted 3 screenshots for the review: Setup, WindowMaker and another one with IceWM + ROX + SciTE + Mozilla, just to show up you some of the apps available in contibuted repositories.”
Looks like the middle screenshoot was omitted from the articles.
<quote>
The obvious answer is that it isn’t commercial.
While im not opposed to Commercial Linux distros, you get ACTUAL (and free) support from the community driven distros.
Plus, you know the developers motives aren’t all about money.
</quote.
That doesn’t say one single thing about how the actual product is different.
Looks like the middle screenshoot was omitted from the articles.
Yes, it was just the default WindoWmaker desktop. (see moderated comments). I wasn’t sure if I had to send some screenshot for the review (after all CRUX ships the default packages without customizations)
The I thought there would certainly be someone screaming “No screenshots?!?” and added some 😉
Anyone with gentoo experience, tried this? comparisons?
Anonymous (IP: —.015-55-74686e1.cust.bredbandsbolaget.se)
I have no idea what you have been trying to install but definitely not mplayer if it was qt dependent. I dont think that you will get this type of dependency anywhere (except you was trying to install KDE or so)
Well, I’m a Gentoo user, and on a whim I thought I’d try installing it. I’m looking for a nice simple binary distro to put on my entertainment system, and who knows, this might just be it.
The initial installation procedure was similar to Gentoo at least (by that I mean do-it-yourself), and the package selector reminded me of Slackware. The kernel is compiling right now, so I’ll post again once I’ve had a chance to play with the ports system.
What file manager is that on this screenshot: http://img.osnews.com/img/4720/crux2.jpg ?
Victor.
The file manager (and desktop icons too) in the screenshot is ROX-Filer, see http://rox.sourceforge.net for info.
ROX is a tiny desktop environment based on ROX-Filer; a brillant concept, everything makes sense. (ok, I’ll stop with the propaganda). Oh, and it’s also very, very fast.
I’ve finished installing CRUX and I’ve had a look at the ports system. Comments about CRUX being about halfway between Slackware and Gentoo are pretty accurate, though it does less “hand-holding” than either of them. It’s very simple – Slackware style package management, no dependency checking, and it uses cvsup to download updates to the ports database. I presume it is very similar to the *BSD ports – I didn’t use the prt-get utility, just the included tools. Installing a package from ports using pkgmk -i first builds a binary package file and then installs it.
There’s no question – this is not a newbie distribution. The CD starts up with a logo, then it boots and leaves you at the prompt. However, that’s where the docs on the website come in, which tell you what to do to get it installed. A few hints there in the docs on dependencies might be useful though (eg. ports requires cvsup).
All in all I have to say I’m very impressed with CRUX. It’s lightweight, simple, fast (fastest booting Linux system I have ever seen!), and it works. It won’t displace Gentoo on my main desktop system, but I might keep it installed on one of my other machines.
Remove Junk Files
(…)
* Files related to NLS (national language support), always use –disable-nls when available.
I live in the Netherlands and have Dutch as my mother language. Now many programs are available in that language, but it seems that CRUX does not want to take advantage of that. So no CRUX for me.
Actually, maybe then I am not the kind of person Crux targets.
However, why did they choose to make a source-based distribution? I simply don’t believe it adds so much extra speed to a system; the switch from XFree 4.2 to 4.3 delivers more speed increase than any compiler options, I believe.
What I would like is a p2p-based compile system. Something like Debian has, but than that everyone who wants can participate in compiling packages, for example in this way:
* Have a binary package, p2pcomp. Anyone who likes it, installs it.
* p2pcomp installs a cron job, that does this:
– query the master server and get a task
– compile the package
– upload the resulting binary back to the server.
* p2pcomp integrates into pkgmk, so that after pkgmk compiles a source package, p2pcomp automatically packs and uploads it to the server.
* The server gives 3 clients the same task. One would expect the results being identical. The server throws away any malicious package.
This system has these advantages:
– People can still compile from source
– People can also install precompiled binaries
– The precompiled binaries will be almost as up to date as the sources
– When one person compiles from source, anybody can save the time he/she spent compiling it.
No one is forcing you to disable nls. Crux tries to minimise useless crap being installed, so as a general rule ports will disable nls by default. Customising your installations is a simple as editing Pkginfo and modifying the ./configure line to suit your needs before compiling. It’s as simple as that.
And generally, any Linux distro should be more customisable than Windows, which is why I made the transition!