modified: Wednesday 12 October 2016
Moving away from Arch Linux Part 2: Looking at alternative distros
This is the second post in a multi-part series about moving away from Arch Linux and installing another distro.
- Part 1: Systemd and reasons for leaving.
- Part 2: Looking at gentoo and Void Linux (this page)
- Part 3: Experiences with Void Linux (still to be written)
Searching for alternative distros
- Not systemd based
- A focus on user control/customisability
- Rolling release
- Exciting and different
The first two distros that jumped out at me were gentoo and void. I’m sure there are many more.
Setting up the VMs
Traditionally I have used Virtualbox for my VM needs. It has a usable GUI and amazing graphics passthrough support (for playing those Windows games WINE won’t run well). Vbox does have a few downfalls however:
- made/supported by Oracle (yet another evil corporation I hear horror stories about)
- does not like you moving VM files and folders around the place
The latter has caused me particular problems before when I’ve been re-organising files. I recently lost/corrupted a Windows XP vm because of this.
This time around I decided to pass on Virtualbox and dip my limbs into QEMU. My previous experiences with QEMU made me believe it only supported ‘full-emulation’ of guest systems (ie it ran extremely slowly). My experiences were probably tainted by the fact I had used a dodgy portable variant of QEMU on Windows on a government issued laptop with the CPU virtualisation extensions likely unsupported or disabled.
Although QEMU can run in full emulation mode (and often does by default) the Linux kernel has a module called KVM that lets it do the more fashionable partial-emulation so that your VMs run at near-native speeds.
Running qemu is remarkably easy:
> qemu-system-x86_64 -cdrom *.iso -drive file=diskimage,format=qcow2 -enable-kvm
Disk images are made using the qemu-image command. The only magic key shortcut I found that I needed to remember was Ctrl+Alt+U, which resizes the VM window to native dimensions. This behaviour is probably default for most users, but I run a tiling window manager that’s nazi about window dimensions.
My take of the overall philosophy
- Compile everything yourself from source, aided by the port system
- Let people do whatever they want
- Linux framebuffer console as a first class citizen
The first (and last) place I used gentoo was on a 1998 Pentium 2 Thinkpad 600. I loved this laptop: it had a beautiful keyboard, a joybutton mouse, hardware brightness slider on the screen and a rubbery coating that emitted a smell you could get high on. On the other hand it was the absolute worst choice of computer to run gentoo.
Not only does compiling everything from source generally require lots of CPU grunt, it also requires a decent amount of memory. 128MiB didn’t cut it for some things but I managed to upgrade it to about 192 at some point.
Compiling the kernel was a lot of fun. For some ACPI-voodoo-reasoning the CPU fan was (not being) controlled by the OS and stayed off. I had the laptop on its side for days, holding ice packs against it so that the CPU would scale up to a more reasonable speed for short bursts. Later I discovered venturing into the /sys directory allowed me to set the fan speed manually.
Apart from that it was a lot of fun. Screens of scrolling text and one of my first tastes of Linux. I’m sure it’s also made me permanently fear Gentoo too.
Experiences in the VM
This screenshot demonstrates a few interesting things:
Depending on your current mindset you might first look at the slightly content penguin or the pile of errors. I wish more distros had penguins in their bootup.
The errors were caused by my VM running out of RAM on bootup. A script in the initrd tries to copy the root filesystem to RAM, but does not check how much space there is first. QEMU defaulted to 128MiB for the machine but a that was easily changed to 1 GiB.
A normal boot from the livecd brings you to here: (NB I’m running install-amd64-minimal-20160211.iso )
I’m heavily encouraged by how the console environment is treated and used in gentoo. Many of the distros that boot into a graphical environment by default try their upmost to ensure that users see as little of the console during boot as possible. Perhaps they are afraid of scaring users away (“it’s running DOS!”) or making them wonder if they should be reading those messages.
Gentoo is the opposite. Graphical environments are not the default: it’s expected that you are going to have to use the console and the console is equipped to make your life easier.
I wish every distro was like this by default:
- Coloured BASH prompt
- GPM (mouse support in the console) for copying and pasting
- Introductory messages/hints
- Error messages spewn without remorse
It’s 2016 and Debian still has a black and white PS1 prompt in the default shell. I think I read somewhere that this was chosen because colour is ‘distracting’ to console users. The only thing I find distracting is having to strain myself when scrolling through console output, looking for where my black and white command was run in the middle of long lists of black and white output.
GPM support is a no-brainer. During installation of distros I’m often in a position where I would really like to be able to copy and paste repository URLs or partition UUIDs. At one point in history I was wgetting web-pages, appending them to my /etc/apt/sources and then manually deleting the 99% of the page I did not want to get down to the single set of mirror URLs I wanted. Brrr.
Gentoo does not have an installer, you have to do the installation process yourself. I often loathe the restrictive nature of installers so this is welcome.
I did not complete my testing of Gentoo. I stopped when it came to compiling my kernel. It was not that I didn’t enjoy it, it’s just that I knew I was getting ‘nerd sniped’ and I would have spent the next couple of weeks recompiling it every few days with different options enabled instead of doing actual work :)
I judge projects harshly by their websites. Websites reveal some of the intentions of their owners.
This is the front page of the gentoo site:
Immediate red flags in my book:
- where are the forums?
- where is the wiki?
It turns out the forums are a link on the ‘Get Involved’ page and the wiki is a link under ‘Support’ and then ‘Documentation’. What the hell. Community and wiki should be on the front page of your site. They should be the most prominent things along with ‘about’ and ‘download’. If you are hiding them then that suggests they must be pretty crap (which is fine if they are, but I know that the Gentoo wiki is actually pretty good) or do not exist.
I would not be surprised if people did not know Gentoo had a forum or a wiki. I know the wiki exists because I’ve been there before for unrelated reasons and it’s unusual for a project this size not to have a forum.
If your project does not have a traditional wiki + forum + … structure then by all means it’s fine if you don’t link to them. But gentoo does and I expect many users will come to the main site trying to find their way to places like the forums and wiki.
I particularly hate the way the gentoo site handles narrow browser windows. They hide the top navigation links and replace them with a hamburger-button menu instead:
My web browser is not run on hardware with a touchscreen, nor does it have JS enabled. Your website is broken unless my web browser is at least x pixels wide. Why do this?
Best viewed at 800x600 with Internet Explorer 5
There are many better ways to handle narrow windows than hamburgering the navigation.
Gentoo comes with an official installation handbook. It’s written like a text book, where possibly relevant information is put onto the main pages to teach you things as you go, as opposed to traditional wiki pages where everything is split neatly up onto its own page.
Hell there are even notes along the way telling you about how to satisfy the special needs for systemd if that’s your thing.
I’m a little worried by how the handbook is split into different wiki namespaces depending on your architecture:
I really hope they have set this up in a way that does not cause them issues with duplicated effort. Much of the information between the architectures should be the same. It would be a nightmare to support this wiki if you had to update the same page for the 10 odd supported architectures each time an edit was made.
My take of the overall philosophy
- Hobby OS for the xbps package manager
- Minimum assumed/installed by default
I have heard about Void Linux but never tried it.
Experiences in the VM
The package manager is beautiful. It’s fast and comparable to Arch Linux’s pacman.
One thing I missed from pacman was the multi-keyword queries:
> pacman -Ss throaty gurgling # searches for ‘throaty’ AND ‘gurgling’
> xbps-query -Rs throaty gurgling # error, only supports one keyword
One leg-up xbps has over pacman is that search results are presented one-per line. This lets you grep the output, which more than makes up for the problem above. Unfortunately the search results are also ellipsed if they exceed window width, which is a horrible feature in my book.
A normal boot on the live CD brings you here: (NB I am running void-live-x86_64-20151110.iso)
Unlike gentoo we don’t have much colour, but some attempt has been made to make the runit init system use bold/brighter white for some of its messages.
Something to scare the pants off you: ssh is enabled by default AND those passwords are 100% predictable. Don’t run this liveCD on a LAN that you don’t trust.
The default shell is ‘dash’. I can’t stand this thing — you can’t press up/down to get to command history and tab completion does not work — so I immediately run bash. No colourised prompt is offered by default.
The installer for void is a mixed bag. It’s interface presents a list of items for you to complete:
Downside: you can’t immediately get started partitioning and downloading packages. Instead you have to configure little final system setup values like keyboard layout, hostname and password first.
Upside: many of these items are optional. I even managed to forget to set a hostname in my test install and the installer did not bat an eyelid. Runit informed of the problem during my next boot:
Picking a timezone however really pissed me off:
You have to scroll through the entire list to find your timezone. You can’t type in something like Australia/Sydney and get there immediately. Yuck.
As an aside: I love not having to read stuff about GPT:
I wish I could think that I will never need to move away from DOS/BIOS style partition tables. The four partition limit has never caused me any woes but the size limit will bite me at some point over the next decade. GPT seems to be so much more complicated and provides steaming piles of stuff that I don’t really want, a bit like how systemd started giving me things I did not want. Executing the harddrive at address zero on bootup (the MBR method) is so much more KISS in my mind.
The partitioning process uses cfdisk by default, but everything else is handled by the installer script. I found the process of setting up filesystems and mount points in the installer to be confusing (and I had myself stuck in a cycle for a while, until I realised i had to ‘back out’ of the dialogs to finish). I’m heavily ingrained into the usage of fdisk, mkfs-* and fstabs; so I find anything else strange and indirect.
The biggest surprise I had was that manpages used ‘more’ as a pager by default. ‘less’ was not even installed. I find ‘more’ an unusable alternative for my manpage habits, but hey, everyone draws the line at what is ‘neccesary’ as a core component or not differently. Fixing this required me to install ‘less’ and also export MANPAGER=less, otherwise ‘more’ would still be defaulted to.
Gentoo please take a leaf from this book:
The wiki and the forum are first class citizens. Viva la community.
Again however the website brings forth the hamburger of greasily fingered screens:
I’m beginning to suspect that a few distro sites run the same backend.
Some of this is made up for by the logo. Hours of entertainment can be had by hovering your mouse cursor over and off the void logo. Back and off. Back and off. Weeeeee! I’m safe cracking!
Looks to be good. I found the post-installation page to be particularly useful as a ‘new users’ guide.
The wiki does not have many pages. 2016 is the year of looking at the Arch Linux and Gentoo wikis whenever you want to know something anyway.
I would love to love gentoo, but I feel it would be too much of a time sink. Void on the other hand looks to be a very fast option, albeit with less favourable defaults.
This part of the guide has been written much later than I originally planned. I’ll ruin the surprise by saying that I have been happily running Void for the past several weeks. Part three will detail some of my thoughts and experiences with it.