We need older software

Introduction

As you may already know, 2023 is not the year of linux on the desktop, despite many predictions. As a (not so typical) linux user I continue to experience major difficulties using linux as my desktop, so I have to change linux distributions from time to time. My current choice is CentOS Stream (oh no!) and it feels good, despite some minor issues. So in this article, I'll try to cover:

I hope you'll enjoy it and please don't treat it 100% seriously. There's still a lot of fun. At least we can continue to think so.

The distribution choice

So my path to CentOS and the logic behind this choice was like this:

  1. I used Fedora at home for a long time.
  2. For 6 months I used Ubuntu LTS at work, it worked fine with some minor tuning and with a very old Gnome 3.
  3. Fedora at home started to seem unstable, and I thought of taking advantage of Debian stability and modern software from Flathub. It required some major tuning like installing and deleting software, VPN in Gnome didn't work at all, but everything else worked and was fine until my SSD died. And I can't say whether Debian or Fedora were involved. But I had my backups. And I had this idea that working with older software isn't that bad.
  4. I didn't have time to tune Debian one more time, so minimizing my efforts I installed Fedora and was happy for some time.
  5. After that Fedora started to be unstable again, I became afraid of kernel upgrades, after which my Wi-Fi can go down. And the kernel is so fresh, that no one knows the workarounds to the new kernel bugs. Besides, all the apps crash. So, I installed Ubuntu with vanilla Gnome.

It worked until it didn't. The file manager had annoying bugs, and I use it a lot. The system complained about SMBus and snap, although I removed snap completely:

[    1.147188] i801_smbus 0000:00:1f.4: Transaction timeout
[    1.149358] i801_smbus 0000:00:1f.4: Failed terminating the transaction
[    1.149474] i801_smbus 0000:00:1f.4: SMBus is busy, can't use it!

[    3.091517] /var/lib/snapd/snaps/bare_5.snap: Can't open blockdev
[    3.094795] /var/lib/snapd/snaps/core22_607.snap: Can't open blockdev
[    3.097791] /var/lib/snapd/snaps/firefox_2579.snap: Can't open blockdev
[    3.111920] /var/lib/snapd/snaps/core20_1738.snap: Can't open blockdev
[    3.113762] /var/lib/snapd/snaps/snapd_17883.snap: Can't open blockdev
[    3.123071] /var/lib/snapd/snaps/snapd-desktop-integration_14.snap: Can't open blockdev
[    3.125320] /var/lib/snapd/snaps/gtk-common-themes_1535.snap: Can't open blockdev
[    3.137192] /var/lib/snapd/snaps/snapd_18933.snap: Can't open blockdev
[    3.140238] /var/lib/snapd/snaps/core20_1852.snap: Can't open blockdev
[    3.140616] /var/lib/snapd/snaps/snapd-desktop-integration_57.snap: Can't open blockdev
[    3.142646] /var/lib/snapd/snaps/snapd-desktop-integration_49.snap: Can't open blockdev

Maybe it's different with Ubuntu LTS. It just didn't feel right, you know. And I thought about these advanced RedHat technologies:

I'm sure there are lots of other great technologies I don't know about, like XFS.

Besides, most software has deb or rpm packages, so I wasn't even looking outside of this world (like Arch, Manjaro, etc.).

I thought about installing RHEL, I even registered as a developer and RHEL download was available. But at least two points pushed me towards CentOS:

  1. I wouldn't like to set up RHEL subscriptions for updates or in some way be dependent on them.
  2. Maybe it's not a bad idea to have a little fresher software than RHEL.

So, I decided to try CentOS, but I hope the description of my migration procedure will help someone.

Migration process

We need to do three tasks:

  1. Prepare installation media
  2. Backup the data
  3. Install CentOS Stream and perform post-installation tasks

I think it's a bad idea to write the installation image directly to the installation media. Imagine, you experience some bugs during or after installation. You may need to try another image, but your HDD won't boot at this stage already. I suggest doing this:

  1. Download several images. For example CentOS, OpenSUSE, and Ubuntu LTS.
  2. Install Ventroy on the installation media.
  3. Copy the installation images to the installation media.

As an experienced linux user, I make a list of important programs and Gnome extensions on a sheet of paper at this stage.

And now we are ready for surprises, so let's back up the data:

  1. Clean the browser cash, as it can slow down the backup process.
  2. Create a new user, say, 'temp', with administrative privileges.
  3. Login with 'temp', insert backup media, and create a tar file on the backup media (without compression) of your normal user home directory.

For example, my backup media is /run/media/data and my home catalog is /home/kostya. Then we do:

# cd /run/media/data
# sudo tar cf backup.tar /home/kostya

Normally the archive preserves just the last catalog, but to be sure, you can check the archive with tar tf.

Now we wait till the backup is complete and safely extract the backup media.

The installation process for CentOS is like 'nothing special', it just works. The only thing to mention here is that RHEL and Fedora have a 9 Gb installation image. I had 3 USB sticks capable of 8 Gb each, so I had to go outside my apartment (for the first time in a few months) and buy a bigger USB stick. Checkmate, CentOS Stream. No, I don't regret spending €12.

And if you want to get CentOS documentation, regarding the installation, for example, you get... to the RHEL documentation, which is awesome.

The first step after installation (I assume you created your user during installation) is to extract the backup. So, again:

  1. Create a new user, say, 'temp', with administrative privileges.
  2. Login with 'temp', insert backup media, and extract the tar file on the backup media to your user home directory.
# sudo tar xf /run/media/data/backup.tar -C /home

Or something like that, you know – in any case, it's a bad idea to trust some random code from the internet and launch it with 'sudo' privileges without understanding it.

I have some special requirements regarding software, so with CentOS, it was like this:

  1. Chrome is a must for me, so I just get rpm from the official website. It runs Microsoft Teams and Google Meet video conferences and lots of Google-specific websites (like Google Drive and Gmail).
  2. I need even more communication software, so I install Zoom, Skype, and Telegram from Flathub.
  3. I also install WPS Office from Flathub as my main local office suite, but I still leave LibreOffice just in case.
  4. I need Emacs and Vim, no surprises here.
  5. I use Reaper for podcast editing, it contains an installation script, which works fine.
  6. I use Camunda Modeler for process maps, I just move it to /opt and created a symlink to /usr/bin.
  7. I play Minecraft sometimes, which works a lot better with Oracle JRE. I just moved the Minecraft installer to /usr/bin.
  8. I update this website with Pelican, which requires python-venv and python-pip. It just works in any distro.
  9. I upload this website to GitHub using git, no problems here as well.

By the way, I don't get all this anxiety about desktop icons. It's better with desktop icons, but I have no problems launching Minecraft and Camunda Modeler from Alt-F2 prompt. Yes, this prompt has auto-completion. And you can name your symlinks in /usr/bin whatever you want.

Last, but not the least, we need backups! I used Deja Dup to make weekly backups to Google Drive, but I failed to install Google Drive support for Deja Dup in CentOS. But then I thought that my internet connection is slow and uploading 4 Gb to Google Drive takes a lot of bandwidth. I switched to borgmatic backup to an external HDD. It's easy to set up and it takes just seconds. Maybe my backups to Google Drive were the reason for the lagging Zoom video or it was just a coincidence. No, Ubuntu couldn't do that to me.

Some conclusions

Regarding CentOS, it works great with some minor 'desktop experience' exceptions:

XFS seems to work faster, than EXT4, but I have no proof.

The comparison table with my criteria looks like this:

Criteria/Distribution Ubuntu Debian Fedora CentOS
Critical kernel bugs No No Yes No
Small annoying bugs Yes No Yes No
Falling software No No Yes No
Not so nice desktop experience Yes Yes No No
Requires significant customization Yes Yes No No
Lacks modern technologies Yes Yes No No
Total 2 3 3 6

It seems that I could be rational.