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:
- The distribution choice
- Migration process
- Some conclusions
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:
- I used Fedora at home for a long time.
- For 6 months I used Ubuntu LTS at work, it worked fine with some minor tuning and with a very old Gnome 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.
- I didn't have time to tune Debian one more time, so minimizing my efforts I installed Fedora and was happy for some time.
- 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:
- RPM, which upgrades the system in transactions, so you don't get corrupt package dependencies – which is quite fixable in Ubuntu and Debian, though. But with Debian (if you want more stability) external repositories are evil just because of that – it's hard for deb/apt to handle them. So, I guess that Ubuntu invented snap to hide this, but this is a conspiracy theory already.
- SELinux, which adds extra security level to the system, and that's especially important if you install some closed-source software.
- Great Gnome experience right from the beginning – no need to tune this, at least.
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:
- I wouldn't like to set up RHEL subscriptions for updates or in some way be dependent on them.
- 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:
- Prepare installation media
- Backup the data
- 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:
- Download several images. For example CentOS, OpenSUSE, and Ubuntu LTS.
- Install Ventroy on the installation media.
- 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:
- Clean the browser cash, as it can slow down the backup process.
- Create a new user, say, 'temp', with administrative privileges.
- 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:
- Create a new user, say, 'temp', with administrative privileges.
- 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:
- 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).
- I need even more communication software, so I install Zoom, Skype, and Telegram from Flathub.
- I also install WPS Office from Flathub as my main local office suite, but I still leave LibreOffice just in case.
- I need Emacs and Vim, no surprises here.
- I use Reaper for podcast editing, it contains an installation script, which works fine.
- I use Camunda Modeler for process maps, I just move it to
/opt
and created a symlink to/usr/bin
. - I play Minecraft sometimes, which works a lot better with Oracle JRE. I just moved the Minecraft installer to
/usr/bin
. - I update this website with Pelican, which requires python-venv and python-pip. It just works in any distro.
- 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:
- 2 of 4 of my favorite Gnome extensions won't install for this Gnome version, but I was able to install Unity.
- It doesn't have Gnome games, so I have to play Sudoku online.
- It's better to add EPEL and Flathub repos, you know.
- For the first time I was able to just install the (rpm) package with Oracle JRE with no additional manual actions.
- My notebook doesn't need special drivers, but still, all the Fn buttons work and everything else works as well, maybe I lack some stages of suspend/hibernation.
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.