Home | Giveaways | Rules and About
last modified: Wednesday 12 October 2016
author: Hales
markup: textile

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.

Searching for alternative distros

My criteria:

The first two distros that jumped out at me were gentoo and void. I'm sure there are many more.

Testing

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:

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.

Gentoo

My take of the overall philosophy

Previous impressions

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:

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 :)

Website impressions

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:

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 800×600 with Internet Explorer 5

There are many better ways to handle narrow windows than hamburgering the navigation.

Documentation

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.

Void Linux

My take of the overall philosophy

Previous impressions

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.

Website impressions

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!

Documentation

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.

Conclusions

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.


Bill - Monday 10 October 2016

Thanks for a very interesting and entertaining read! Like you I am looking at systemd-free distros, although I have been happily running Slackware for the last year but the distro-hopping habit is hard to shake. The easy option is to stay with Slack which does everything I need but I am always interested in projects like Void, Alpine and CRUX.

I am looking forward to reading your "Experiences with Void Linux" blog!

Hales - website - Wednesday 12 October 2016

Wow, thanks Bill. Apologies for my 6 month long promise backlog :)

There are several other posts I need to make too, but I'll work on the third part to this series first. Today is my first not-sick 'free' time slot in a while so with some luck it'll appear soon.

What's Slackware like? Do you ever get game-changing updates that break or otherwise cause issues with your system? Void has been rock-solid for me so far.

Repository wise Void is a little lacking, but I'm sure that's true of all non-major distros. Puppy Linux had the great idea of piggy-backing Slackware's distros (and I think it still does? or did it switch to Debian/Ubuntu?). I'm currently maintaining a few programs (eg Seamonkey, kphotoalbum) by hand; which above all else has grown a spiralling desire inside of me to stab everyone who has ever written a build/compilation framework (or just any large code framework in general).

Meanwhile I've read up on another interesting distro: GoboLinux. http://www.gobolinux.org/

This distro lets you have multiple versions of any program or library installed at once, and the package manager does not need any database file because everything is inferred from the folder/filesystem layout. Each package is installed in its own single folder and then symlinks are made in the global bin, include, etc folders pointing to the correct parts of the package. You can even just 'mkdir' and 'ln' your own package or by-hand-package-version into the tree and it will get treated like an officially installed package. Don't take my word on this, I might be over-imagining based only on what I've read.

One thing in Gobo that immediately deterred me was the use of capital letters in the filesystem paths. Unix Thor inside me was rattled! But it looks like this was done *because* it is unusual: that way the standard unix filesystem hierarchy doesn't accidentally decide to use one of Gobo's folder names one day. Interesting read: http://www.gobolinux.org/?page=at_a_glance . There are a few other good reads on his docs page too.

... but again, I'm going to complain about the website :P Web browser too narrow? We'll just hide all of the documentation, forum and other links at the bottom of the page. Not sure just yet if this is better or worse than hamburgering.

Angus71 - Sunday 8 January 2017

Hi Hales!

I would love to read more about your distrohopping. How is Void in day-by-day-use? Are you still satisfied?

Did you give Gobolinux a try? Do you plan to test other systemd-free distros like Devuan?

Greetings from Germany

Angus71

Hales - website - Wednesday 11 January 2017

Hey Angus,

How is Germany? Snowing? Down here the last few days have been almost 40 degrees C. Tomorrow we're dropping down to a max of about 27, so things will be better. My LED strips have been ungluing themselves from under my shelving :P

Void has been an almost perfect distro so far, but a few problems have cropped up. Yes I'm very satisfied, especially since day after day my Void desktop works and my Arch ARM laptop breaks :D

I'll whine on again about how Void has 'man' using 'more' as its default pager. That's from the days of not having enough memory to page up and down in a text file. I don't think 'less' uses much more disk space than 'more', and it's certainly more user friendly.

Something that I didn't mention in the review above is how neat Void handles 32 bit packages on 64 bit systems. Almost every single libsomething has a libsomethin-32bit option too. I think behind the scenes the actual 32-bit repository and packages are being used (but renamed with the -32bit extension to avoid clashing). I have had zero issues tracking down and installing 32 bit libs for running stuff precompiled for non-64bit x86.

Getting Windows games working on wine required manually tracking down the names of the right 32-bit opengl and dxtn (proprietary texture compression). I knew to do this based on some guesses. Not a problem once set up, however.

My day to day usage of the distro is no dramas. I turn it on, I log in, I startx and I launch my web browser. It all just works. For shutting down I granted my user the ability to 'sudo shutdown' (and reboot, etc) anywhere without having to enter a password. Very simple, very easy.

I do occasionally need to update a few things by hand:

- config file for syslinux (my bootloader)

- uninstall old kernels

- Seamonkey (not in repos)

- kphotoalbum (not in repos)

Syslinux does not come with any automagic scripts (atleast in Void, but probably with other distros too). I setup syslinux to look at symlinks to my latest kernel and I run a little script to update these. If I don't, the worst that happens is I stay on an older kernel version. This causes me no issues as none of the files for the older kernels are uninstalled until I ask. Also: this is not an issue for most users, as the default grub does the normal automagic stuff. I just like syslinux more :)

I believe there is an official/supported way to automatically remove old kernel versions, but I'm not using it. When my root filesystem fills up I do it manually.

So overall: Void's been good. It's like what Arch used to be. I never have to fix stuff because I'm the one making the mistakes, not the software.

I'm unlikely to try Devuan in the near future simply because I'm not a fan of Debian. I used to use it for years, but stopped because two things began to irk me: immediately starting daemons after you install them and the 'recommended packages' system.

Auto-starting daemons are bad in my book for the same reason that I don't like Void's installer environment autostarting sshd with predictable passwords. I like to be able to edit the config files before things start. It's not that I don't trust the maintainers to be trying to keep things secure by default, it's that I like the extra layer of safety. When you buy a car you trust that the seller ensured the brakes work, but you should still check them yourself before you go onto the busy road.

"Recommended packages" is a double-edged sword. It's good for ensuring that all features of a program you install will work. It's bad in that it drags in a whole bunch of deps that you might not want. Lyx was a big example for me: adding --no-recommends to apt's command line made the difference between gigabytes (hours) of downloads and megabytes (minutes) of downloads.

I do want to try Gobo. And my new laptop has arrived. As good as of an excuse as any ;)

Sadly old Silver (my ARM laptop) has had several strokes over the last year and a bit. Sometimes during updating he hard locks and leaves my filesystem in an inconsistent state. Who needs the files in /usr/lib anyway? But I digress. It's not been fun to repeatedly fix, especially on the odd occasion that 'tar' or some other important tool that I need for fixing things stops working.

This issue might come from the old kernel version I'm stuck on. I tried a newer kernel from Arch Linux Arm's repos but this lead to several things breaking. Also, installing a new kernel was really risky too, because...

... the signed, proprietary Google bootloader on old Silver is confused and drunk. It's still in "developer mode" but it won't let me boot off USB sticks or SD cards any more. Those options have magically become write protected too. In other words: if the install I have on it stops working, I have _no_ way of getting this device to work again. The 16G of internal storage is soldered to the board with no SATA connector in sight. Potentially I could force the SOC (main processor/chipset all-in-one System On a Chip) to boot from an SD card by shorting the right pads on the mainboard, but given the other problems I have with Silver, I think his days are being counted by the great consumer disposability gods.

My new laptop (same 11.6" screen size) fixes all of these issues. Removable storage (SATA), more generic BIOS (x86) and even a few other internal connectors (SODIMM slot, SSD slot of some kind). Dell Latitude 3150 (or 3160), the insides look like this --> https://www.youtube.com/watch?v=b9YXrlpVemQ

Angus: are you happy with your computer at the moment? What are you thinking of trying?

Regards, Hales

Hales - website - Thursday 12 January 2017

Wow the void linux installer is broken at the moment. To anyone wanting to give it a try: just skip all of the broken steps. I skip most of the setup steps anyway, you don't actually need to complete anything beyond:

- the bootloader

- the partitioning

- the filesystems

EDIT: Woops, apparently this issue only occurs on the musl builds, which I was trying out at the time. Apart from having no locale support, several packages I wanted were also missing. Ignore me! I'll provide an update soon.

bluey - Thursday 9 March 2017

I don't have any questions, just wanted to say thank you for such a great post. I'm looking forward to part 3!

Hales - website - Thursday 9 March 2017

Dang, several people have shown interest in a sequel now. I'm going to have to work on some twists >:)

Kiarash - Tuesday 14 March 2017

Great post. I am looking forward to know more about your experience with void Linux.

I've been an arch user for almost 4 years now and recently I decided that I'm done with systemd. So right now I'm looking for non-systemd dustros. My candidates so far are void and slack. I would also be happy to know your thoughts on slack. I don't have much experience with slack but I think it matches your criteria except for the rolling release thing.

baapdamper - Friday 17 March 2017

Nice read! Gonna test out void this weekend.

Regards baapdamper from the Netherlands

crocket - Friday 24 March 2017

Kiarash : Do not use Slackware. I used to use slackware. Slackware probably still doesn't provide automatic package depenency resolution.

Also, slackware IRC channel has some trolls including tadgy. Those trolls will attack you for asking questions.

Its init system is sysvinit which is obviously much less convenient than runit.

Hales - website - Friday 24 March 2017

Moderation note: I would prefer if community complaints were done in general terms (rather than naming individual users).

I'm not a fan of some of the IRC channels for FOSS projects that I've been on. Some people, including developers, can be horrible. But that's true for people and projects in general, and you can warn people about bad community members without having to name them.

crocket: it sounds like you had a shit experience. I used to spend quite a lot of time on a certain project's IRC channel, and we had members/devs that would pass by with some particularly nasty ways of approaching people. It sucked. Don't let a few bad apples spoil a project for you.

Heads up: I'll remove any future posts that talk about specific users or people. Feel free to discuss this with me on either the readme page or via email:

http://halestrom.net/darksleep/misc/readme/

Daniel A. - website - Sunday 6 August 2017

Whatever happen to part 3 of this series?

Hales - website - Monday 7 August 2017

It's coming, it's coming, I promise. Just in parts.


Add your own comment:

Name:
Email (optional):
URL (optional):
Enter the word 'irrlicht' (antispam):
Do not enter anything into this box (antispam)

Comment (plaintext only):

If you provide an email address: it won't be made public. I'll only use it to contact you regarding your comment. No spam, mailing lists, etc.

If you provide a URL then your username will hyperlink to it.