Another likely candidate is Clear Linux, a distribution supported by Intel Corporation. They clearly have a useful agenda: make Intel processors look good with Linux. And they succeed.
The documentation on the front page seemed promising, as it gives several use-cases and lists of available software.
It has a marketing feel: a list of features (as opposed to technologies) which includes “stateless” twice, customizable, and “Intel optimized”.
Unstated, but implied, is that this is more of a “corporate-friendly” distro that should see little friction in corporate environments. The stateless part is a strong piece of that.
The documents include Guides, Tutorials, and References. Like Python documentation, there is a clear distinction amongst these.
Guides include: Bundles, Kernels, and what Stateless means. Additional Guides cover lifecycle, networking, and typical deployment stacks like database, deep learning, or high-performance computing (HPC).
Tutorials cover easy, moderate and difficult topics like setting up a LAMP stack, HPC cluster, or Kubernetes cluster. These all assume you have Clear Linux already installed.
The guide Download-Verify-Decompress describes the various tailored images, including the VMware .vmdk file that I used.
An important distinction here: the documents are accurate. That’s very important.
The big difference, and a significant advantage, is the bundle concept.
Each bundle contains as many or as few open source projects needed to provide a complete functionality.
This is a very big deal as it eliminates a lot of cross-RPM compatibility issues – instead, Intel and the Clear Linux developers select the compatible RPMs and “bundle” them. The functionality just works.
One of the downsides is the relative invisibility (in search tools or the bundle web site) of developer bundles. And as mentioned below, some bundles are too small.
There is a clear statement of the minimum CPU requirement at Compiler Flags and this is Westmere CPUs (available in 2010) and tuning for Haswell architecture.
A slightly more detailed description is at System Requirements
Nobody else does this.
The OS can run containers, or any of the popular (and bundled) GLIBC software items like Python, virtualization hypervisors, Kubernetes, etc.
In short it’s general purpose.
Also, in the corporate-support sense, it has valid configurations out-of-the
box (/etc
is mostly empty) and a reset is accomplished by emptying /etc
and /var.
Out of the box you get a user account. And that’s all.
The root password and user passwords have to be high-quality. The user
is configured from some questions. Then you add bundles with sudo
.
To even search for bundles, you need to add a bundle!
Install by booting the media, login as root, and run a script.
clr-live login:
Enter root, you will be asked for a high-quality password.
Start clr-installer. A text-based graphical menu appears. Fill in the forms for ® Required options:
# clr-installer
(Hint: after changing values, you must tab to the Confirm button. It requires close examination to confirm you have selected Confirm as there are numerous other text boxes with the same colour. This is a poor UI choice.)
Timezone (recommend UTC)
Choose Language (US)
Choose Keyboard (recommend US)
Select Configure Installation Media (choose Destructive Installation for a single-partition install)
Select Manage User and add a user (this is mandatory; there is no root login permitted)
Configure Telemetry (choose to enable or disable as desired)
Select Install. (Accept the reminder about destroying disk contents.)
Install takes about 7.5 minutes (i3 CPU on a VMware VM with SSD).
Select either Reboot or Exit from the clr-installer.
After a reboot, automatic update takes about 7 or 8 minutes. This is done
by the swupd
tool.
Meanwhile you can’t use swupd
until it is finished.
Then,
touch .vimrc ### needed to avoid a constant vi message
export PYTHONWARNINGS="ignore::DeprecationWarning"
sudo swupd autoupdate --disable ### I like stability
swupd search matplotlib
This search fails, because the following bundles are needed to search:
sudo swupd bundle-add os-core-search
swupd search matplotlib
sudo hostnamectl set-hostname clearbox
There is a website with a list of packages, divided into “bundles” (meaning officially supported) and “flatpak” packages.
Clear Linux Bundles is
the website. It’s quick, and automatically does wildcards
(such as searching for Fortran, for which you type fortran
in the search box).
Clear Linux also supports the Flatpak package installation mechanism, so you get a wide variety of available applications.
Add a bundle with
sudo swupd bundle-add c-basic
sudo swupd bundle-add devpkg-fftw
sudo swupd bundle-add vim-minimal
sudo swupd bundle-add python-extras
sudo swupd bundle-add openmpi
sudo swupd bundle-add machine-learning-basic
sudo swupd bundle-add git
sudo swupd bundle-add devpkg-gsl
sudo swupd bundle-add wget
sudo swupd bundle-add devpkg-openmpi
Notice the last bundle – you have to add two OpenMPI bundles to compile and run an MPI program.
For X11
sudo swupd bundle-add devpkg-libX11 x11-server x11-tools
For building cwm
myself I needed:
sudo swupd bundle-add x11-tools x11-server devpkg-libX11
sudo swupd bundle-add devpkg-libXft ### fonts
(The devpkg-libXft
was a real nuisance to find. Why is it not
in devpkg-libX11
?
Why can’t you find it on the website?)
Then download and build the portable cwm tarfile:
curl -OL https://leahneukirchen.org/releases/cwm-6.7.tar.gz
tar xzf cwm-6.7.tar.gz
cd cwm/cwm-6.7/
make -e PREFIX=$HOME install
As seems to be typical with many operating systems, finding what
you need to install to do task X or Y seems to be most of the effort.
Especially compared to ./configure; make
.
See my above example with Xft.
The search command doesn’t do much more than a “Do you feel lucky” search. If the first result doesn’t work for you, the occasional second or third won’t either. Example,
swupd search X11
Bundle with the best search result:
feh - Fast X11 image viewer, managed via command-line.
This bundle can be installed with:
swupd bundle-add feh
Alternative bundle options are
gnuplot - Graphing utility that outputs to X11, PostScript, PNG, GIF, and others.
simplescreenrecorder - A feature-rich screen recorder that supports X11 and OpenGL.
x11-server - Provide a functional X11 Server (Xorg or wayland-based). (installed)
Nope, that doesn’t do it for me.
I really miss a pkglocate
tool.
This one is very fast to reboot. It’s like a few seconds. It’s an example
of systemd
at work.
Except, it takes a while longer before it accepts SSH logins.
I don’t have usable performance comparisons (using a VM means measurements are not repeatable). See Phoronix for Linux and BSD performance comparisons and benchmarks.
Clear Linux has the stability, apparent performance, diversity of applications and capacity for ease of development. So I’m going to stick with this for a while, for those times when running things on OpenBSD isn’t possible.
January 2022
OpenBSD Numerics | My Linux Experience | Experience with Alpine Linux | Experience with Clear Linux