sampling linux mint 20.3

Just as I’d stated in the last post about Fedora 36, I’ve started to look at alternative distributions. I looked at both Alma Linux and Linux Mint, and decided to not go near Alma Linux. That leaves Linux Mint.

Linux Mint 30.2 is derived from Ubuntu 20.04 LTS, Focal Fossa. That’s not a bad thing per se, but the kernel and tool versions are from two years ago. That may or may not cause issues. As an example pre-installed Python is at version 3.8.10. A check on python.org shows version 3.8 is at 3.8.13. Minor point releases are usually bug fixes, which might include security fixes as well. I’ve yet to dig in and find out. In any event if I were to go with Linux Mint I’d build my own latest version and install it in parallel with the default version, as I have done countless times before. Followed by creating a virtual Python work environment.

It has been many years since I worked with Linux Mint, so I slowed down and took some time to explore and become reacquainted with this distribution. It’s a pleasant experience with interesting little touches. For example I was able to quickly find a theme I liked and installed it. And that’s when I noticed a problem with every Gnome-based distribution; wasted space on the window chrome. The top window bar in particular is huge, giving every window the digital equivalent of a high forehead. And that’s without a menu. Windows and macOS have much thinner upper window borders, and the controls and text that are a part of those borders are better designed and integrated. It’s all about efficient use of screen real estate; Gnome is not efficient.

In a way, because it’s based on Ubuntu 20.04 LTS it’s a bit like stepping back in time. And a reminder of what I left behind, both good and bad. And a reminder that perhaps the bad wasn’t all that bad after all. I even like how I was able to find another decent wallpaper, at least to me:

It’s called Red Waves and is part of the Una image collection in Backgrounds. And one more nice little touch:

Right mouse click on the Mint desktop, go down to the very bottom of the pop-up menu where it displays Customize and click to bring up this dialog. See the slider on the far right and the one at the very bottom? Those are used to tweak the horizontal and vertical distances between the desktop icons, independently of each other (i.e. you can just change the vertical distancing if you’re fine with the horizontal distancing.) As I wrote earlier, a number of nice little touches.

As for my pain points:

  • There is no brltty.
  • Parallels Tools installed just fine, which allows me to share a folder on my Mac with all my other VMs and the native Mac environment.
  • The Mint desktop is Xorg and works just fine in a Parallels virtual machine on a macOS desktop.

I don’t know yet if I’ll replace Pop!_OS with Mint, but it’s a serious contender. A very serious contender.

And what about Alma Linux, you ask? Alma Linux advertises it’s a clone of CentOS, which is a clone of Red Hat, and brother, are they right about that. RedHat is Corporate Linux all the way, as are the derivatives CentOS and AlmaLinux. And I’m here to tell the world I have no use for Corporate Linux. I’m glad that RedHat is here for the corporate types as it keeps them away from me. I am concerned that Ubuntu is evolving into another Corporate Linux, which I find disturbing.

building python 3.9.5 on almalinux 8.3 (purple manul)

Alma Linux (or if you prefer, AlmaLinux) is essentially CentOS with a new coat of paint. IBM, owner of RedHat, who in turn owns CentOS, stirred up a hornet’s nest back in December 2020 when the owners announced that CentOS 8 was changing from a stable release of RHEL 8 to a rolling release of RHEL, and renaming it CentOS Stream. CentOS 8 is being end-of-lifed December of this year, 2021. Needless to say, there are a lot of unhappy CentOS users looking for an alternative.

AlmaLinux ( https://almalinux.org/ ) might be one of those alternatives. Originally created by CloudLinux Inc ( https://www.cloudlinux.com/ ) as a fork of their Linux distribution CloudLinux OS, Alma Linux is “an open-source, community-driven project that intends to fill the gap left by the demise of the CentOS stable release. AlmaLinux OS is a 1:1 binary compatible fork of RHELĀ® 8 guided and built by the community. As a standalone, completely free OS, AlmaLinux OS enjoys $1M in annual sponsorship from CloudLinux Inc and support from other sponsors. Ongoing development efforts are governed by the members of the community.” To help allay any fears that Alma/Cloud isn’t mature enough, CloudLinux OS “is a RHEL fork that has been in place for over ten years.”

I’ve downloaded the AlmaLinux ISO and created a VM under Parallels Desktop, and so far it behaves just like CentOS, at least for me. What AlmaLinux lacked was an up-to-date version of Python, so I set about building an alternative installation of Python 3.9.5, the current (as of this posting date) Python release.

Setup

Like every other RHEL 8 and its clones, the base OS isn’t set up to successfully build all of Python, including many of its modules. So the first thing you have to do is install all the various support libraries and several applications that Python needs to build.

Let’s start by installing the following list of libraries. These match what I’ve documented in the past for Ubuntu, except that the package names are different for RHEL/AlmaLinux.

sudo dnf install zlib-devel ncurses-devel gdbm-devel nss-devel openssl-devel readline-devel libffi-devel sqlite-devel bzip2-devel

Next install Tk. This will also pick up Tcl, the dependency.

sudo dnf install tk tk-devel

Install these last bits for some obscure libraries.

sudo dnf install lzma xz-devel

Because I’m also working with PyQt6, I need to install the full Qt tool set. This won’t stop Python from building, but after installing Python 3.9.5 and installing PyQt6, any PyQt code you write won’t run. You need this package for the PyQt6 runtime.

sudo dnf install qt qt5-qtbase-devel

Build

Download the Python source and untar it into some area on your system. In the same folder where you untarred the source, create a build directory, such as build-3.9.5, and change directory (cd) into it. Then run the following to configure the build environment.

../Python-3.9.5/configure --enable-optimizations

When finished, run make, then make altinstall where your new Python will be located in /usr/local/bin.

Install and Test

You’ll need to add /usr/local/bin to your path in your .bashrc. Bring up a new shell, or source ~/.bashrc in your current shell, and you should be able to test Python, python3.9 --version.

References

Red Hat resets CentOS Linux and users are angry – https://www.zdnet.com/article/red-hat-resets-centos-linux-and-users-are-angry/