Experience with Clear Linux

Clear Linux

Experience with Clear Linux

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.

Clear Linux - the first reading

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.

Clear Linux Documentation

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.

Clear Linux Bundles

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.

Clear Linux Hardware Support

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.

Clear Linux Assumptions

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.

Clear Linux is Basic

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!

Clear Linux installation

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

Clear Linux applications

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

Porting complaints

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.

Speed

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.

Conclusion

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