The good and the bad of Void Linux
Here's my review of Void linux, a summary of the good and the bad I saw after using this flavour of Linux for well over a year now.
Here's my review of Void linux, a summary of the good and the bad I saw after using this flavour of Linux for well over a year now.
First, install etckeeper
.
Then, create these two (executable) files:
/usr/local/bin/xbps-install
#!/usr/bin/env perl
use v5.38;
`whoami` eq "root\n" or die "Not root user";
!system('etckeeper pre-install') or die "Couldn't execute 'etckeeper pre-install'";
!system("/usr/bin/xbps-install", @ARGV) or die "Couldn't execute '/usr/bin/xbps-install @ARGV'";
!system('etckeeper post-install') or die "Couldn't execute 'etckeeper post-install'";
/usr/local/bin/xbps-remove
#!/usr/bin/env perl
use v5.38;
`whoami` eq "root\n" or die "Not root user";
!system('etckeeper pre-install') or die "Couldn't execute 'etckeeper pre-install'";
!system("/usr/bin/xbps-remove", @ARGV) or die "Couldn't execute '/usr/bin/xbps-remove @ARGV'";
!system('etckeeper post-install') or die "Couldn't execute 'etckeeper post-install'";
Then do sudo etckeeper init
.
Then edit /etc/.gitignore
to include files that shouldn't be versioned (such as /etc/resolv.conf
).
Then create this executable file:
/etc/cron.daily/01-record_manual_packages
#!/bin/sh
xpkg -m > /etc/my_list_of_manual_pkgs
Then create this executable file:
/etc/cron.daily/02-etckeeper-daily-commit
#!/bin/sh
etckeeper commit "daily commit"
This setup is perfect.
All I had to do was use the Steam package from Flathub instead of the official Void package. And it works fine.
Apparently setting CGROUP_MODE
to unified
is not at all bad for you, so you should follow all the instructions contained in the incus/README.vodilinux
file, including that.
If you still have problems starting Incus containers after that, like I did, your problem could be that you have the elogind
service enabled. As everyone on IRC says, you shouldn't have it enabled. Disable it.
You may now ignore my previous #incus
-tagged post.
A huge variety of fonts used everywhere to be able to view webpages properly is contained in the following four packages:
noto-fonts-cjk - Chinese, Japanese, Korean
noto-fonts-emoji
noto-fonts-ttf
noto-fonts-ttf-extra
(Found out on IRC)
Void Linux is one of the best Linux distributions out there: It's not maintained by a company and doesn't even have or want sponsors, so it'll stay on the side of users forever. It doesn't use systemd (that many users hate) as its init system, its package manager is very fast (maybe the fastest around), and it's extremely minimal in the amount of software installed by default (good for CPU & disk, the environment, and user-choice of alternatives), and it's a rolling stable distro.
The downside is that it's not for beginners. You'll often need to read documentation (Void's official documentation does a great job) to get things done, and also end-up asking questions in Void's IRC channel to Void's more experienced users.
I did (and still do) a lot of the asking, so I'm providing the most important information I learned there in this series of blog posts tagged #void_linux.
Incus is the replacement of LXD one should use. For some reason it won't work well on Void out of the box after a while, and incus start <container-name>
might stop doing anything. How do we fix it?
Looking at /usr/share/doc/incus/README.voidlinux
it suggests the following:
Some container configurations may require that the `CGROUP_MODE`
variable in `/etc/rc.conf` be set to `unified`.
One way to solve it is that. I did another solution however, which I found at this github issue. I did the following:
I created this Perl script, called enable_incus
somewhere:
#!/usr/bin/env perl
use v5.38;
! -d '/sys/fs/cgroup/systemd' or say("Incus already enabled. Skipping."), exit;
system('sudo mkdir /sys/fs/cgroup/systemd');
system('sudo mount -t cgroup -o none,name=systemd systemd /sys/fs/cgroup/systemd');
say 'OK';
Then I edited /etc/sv/incus/run
and added this line near the top:
/path/to/enable_incus
...so that my script gets executed just before incus
is launched.
This fixed the problem.