Desktop of Ubuntu 12.04, with its default wallpaper
Figure 1: Desktop of Ubuntu 12.04, with its default wallpaper

My journey through the world of Linux began in mid 2012, when I first tried Ubuntu 12.04 as a dual-boot with Windows 7 on my Dell laptop. At first, I must admit I was not impressed, as it was like I had landed on an alien planet, as I had never had any need to use a terminal emulator (or command prompt as it is called under Microsoft Windows) before. Fortunately, I persevered (although, I did return to Windows on-and-off) and after a while I became almost addicted to Linux. A couple of years later I decided to delete the Windows 7 partition on my Dell laptop and make the laptop 100% pure Linux. Since then, I have never regretted making the transition to Linux. Although, I eventually outgrew Ubuntu as it was essentially preschool with so much hand-holding that I was left out of many of the important decisions about my own system.

When I outgrew Ubuntu in mid 2015, I started to search for a new free operating systems to call “home”, using Oracle VM VirtualBox, KVM/QEMU and live USB I tried a variety of free (of monetary cost) operating systems, including:

Linux From Scratch

I have also repeatedly tried to build a Linux From Scratch system but it failed almost every time. The second last time it failed (on 28 May 2017) with Manjaro Linux 17.0 live session as the host (or bootstrap) OS and I was building LFS 8.0 and the failure was due to glibc 2.25 issues. Namely its test suite failed during this stage (chapter 6.9) giving this log. After this running:

echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

per chapter 6.10 of the manual failed as the compiler was malfunctioning. Also tried using ALFS with jhalfs-2.4 and that still failed due to kernel issues. The #lfs IRC channel was not really helpful people just said to try the manual way over and over (doing a clean start from the beginning the LFS guide) again until it magically works. I did manage to install Linux From Scratch with this effort starting on 6 October 2017 and ending 7 October 2017 and it finally booted fine, except one minor networking issue.

Operating systems installed on my actual hard disk

Of the operating systems listed before I have also installed the following nine on my PC, outside a VM and live session:

  • Arch Linux
  • Fedora
  • Funtoo Linux
  • Gecko Linux
  • Gentoo Linux
  • Manjaro Linux
  • openSUSE Tumbleweed
  • Sabayon Linux
  • Ubuntu

my favourite were, in ascending order:

Ubuntu

Ubuntu was my first distro so I feel very comfortable with it, despite the fact that package development under it is difficult and tedious. I do not presently use it but it is fairly stable.

Sabayon Linux

It is the distribution that I have decided to keep on my /dev/sda1 partition permanently, because it is a good fallback distribution in case the distro on my /dev/sda3 partition fails to boot or otherwise has serious issues. It is a Gentoo derivative that has a beginner-friendly binary package manager, Entropy, alongside the complicated yet powerful package manager (oriented towards experienced Linux users) of Gentoo, Portage. Its software is usually fairly up-to-date (e.g., its website claims that its software is “bleeding-edge”), although sometimes you will see a lag, sometimes due to upstream issues (see most packages in its repositories come from the Portage Tree of Gentoo. e.g., GNOME 3.18 was released 23 September 2015, yet it was not until 15 November 2015 that the GNOME Shell 3.18 was finally added to the Portage Tree) and sometimes because only two people directly maintain the Entropy Store and as there are over 13,100 software packages in the Entropy Store it is sometimes impossible for them, from a practical standpoint, to keep all of them up-to-date.

openSUSE

openSUSE uses RPM packages like Fedora, but unlike Fedora its system software and desktop environments are usually nowhere near as bleeding edge. This is likely because openSUSE is designed to be compatible with both servers and desktops/laptops, with the former usually valuing stability over being up-to-date, while Fedora is mostly geared towards desktops/laptops. I tend to find that installing programs on openSUSE is similar to installing them on Fedora, in terms of difficulty. Its chief advantage over Fedora is that it has a Tumbleweed edition that is essentially like a simpler (less compiling software not in the repositories from source code) version of Arch Linux, thanks to the Open Build Service (OBS). The OBS is a system whereby users can freely build and distribute packages of their choosing for any one of a variety of different distributions (including Arch Linux, Fedora, openSUSE, etc.), the main problem with it is that it cannot build packages that require Internet access during the build (like the Atom text editor, for example). I initially thought OT had fewer bugs than Arch Linux, but, regrettably, I found OT definitely has its fair share of bugs, as does its derivative Gecko Linux (Rolling edition).

For example, when I booted Gecko Linux (Rolling) for the first time, after installing it, I typed in my credentials to access the WiFi (which did not require any extra packages installed as Gecko comes with Broadcom firmware pre-installed from the unofficial Packman repository of openSUSE), from the network section of the KDE Plasma 5 system tray, and while it seemed to connect to the WiFi (i.e., no errors were mentioned) the WiFi was not available to any of my applications, including my web browser (Google Chrome, which I installed manually as it does not come with Gecko, by default) and command-line programs like ping and zypper.

Fedora

Fedora is interesting to me, in that installing software packages in its software repositories is usually at least as easy as it is on Ubuntu, but installing software manually from source code or setting up web applications (e.g., MediaWiki or WordPress) tends to be substantially more difficult than on other more user-friendly distributions. It is also interesting to me in that its system software and desktop environment-related software is usually the most up-to-date of any distribution following a fixed-release cycle, yet the rest of its software tends to be at least two releases behind the latest available release, in my experience, anyway. It has its own equivalent to the OBS, Copr (although unlike the OBS it can only build packages for Fedora), which does afford packages Internet access during their build, if the packager grants them this. Copr also like the OBS, has strong licensing restrictions (namely, that they have to be FOSS) on any packages built and distributed through it.

Funtoo Linux

Funtoo Linux was the first source-based distribution I had successfully set up on my computer, outside a VM. It, for the most part, was quite an enlightening experience and it gave me the confidence to re-try installing Gentoo Linux on my PC outside a VM, after my first attempt failed quite miserably.

Gentoo Linux

I successfully installed Gentoo Linux around early April 2017 and with what I learnt from installing Funtoo Linux I found it fairly easy. I ended up switching my init system from OpenRC to systemd, using git to control my local Portage tree copy (as opposed to the default of rsync). Around late April 2017 my hard disk on which Gentoo was installed crashed and I had to re-install it. Took about two days to set up a basic, usable system with a GUI (namely KDE Plasma). I learnt that a Gentoo (testing) is quite buggy, mostly with respect to building packages. I found myself filing at least one bug report per day, until my system was fully set up (which took roughly a fortnight), with all the packages I wanted.

Arch Linux / Manjaro Linux

Manjaro Linux is a beginner-friendly derivative of Arch Linux, a Linux distribution based on the “Keep It Simple, Stupid” (KISS) principle, that is geared towards more experienced Linux users. The way it interprets the KISS principle, is that a fresh Arch install should be the barebones and that automation (e.g., there is no automated installer for Arch, by default) should be kept to a minimum. For this reason, Arch Linux was previously out of my reach, until I found some scripts for automating its installation process. Unfortunately, installing Arch on my removable drive did not go well at first (I forgot to install and configure a boot loader for it, I think), so I then opted to use Manjaro Linux in its place on this drive.

Later I managed to install Arch Linux on this removable drive and successfully boot it and then I successfully installed it on my internal hard drive (namely on my /dev/sda3 partition, with /dev/sda1 being my Sabayon partition and /dev/sda2 being my swap partition). Graphics issues caused me to delete this internal drive installation and install OT in its place. Later I deleted this installation and installed Arch in its place. Manjaro Linux uses its own repositories, which are updated approximately once a week, this is apparently to ensure the system’s stability.