Hacker News new | ask | show | jobs
by ifbizo 3007 days ago
How do people compare this to Alpine Linux? I'm interested in both.
2 comments

I use both as daily drivers on laptops, and they are both very nice systems. Some differences:

* Alpine is lighter-weight. As at least one point, Alpine packages are split into small parts (usually at least app, app-dev, and app-doc, respectively containing the actual program, the development headers, and the manpages/docs). Alpine also defaults to using Busybox for coreutils.

* Void is rolling release with regular updates and a surprisingly large repo. Alpine has a rolling "edge" release and stable releases that are supported for 2 years.

* Void works on a traditional install to a writable root filesystem; Alpine can do that ("sys" install), or can run in RAM, optionally persisting state).

* Alpine uses hardened kernels. They used to use grsec, not sure what code they use now. Additionally, they configure the system to be locked down; for instance, on the laptop I'm using to type this comment, I can only check the battery status as root, and powertop outright doesn't work (as I understand it, they completely killed off the debugfs interface it needs).

* Void seems to be more into cutting-edge tech; ZFS and wireguard come to mind.

In general, Alpine is designed for embedded, Void is a general-purpose system. Both can do the others' job, but that's their tendencies.

The alpine userspace is also great to run in containers

my LXC container basically runs up DHCP to get an IP and a SSH server to provide a remote shell, everything else is per-server setup like webservers and stuff, compared to the ubuntu containers I run Alpine uses a LOT less memory and CPU.

Alpine is musl only; Void has both glibc and musl variants. Void seems more desktop-focussed than Alpine, and (at least as of a year ago) I didn't have a lot of luck with ZFS on Alpine.
IIRC you can install glibc into Alpine when an application needs it but the packages are all musl.
A glibc chroot still seems to be the recommended method: https://wiki.alpinelinux.org/wiki/Running_glibc_programs
Hehehe I wrote the original wiki entry (because someone on irc asked for something like that)

I think it's still the recommended way for dependency management reasons and missing glibc-packages. If you can get your program running with the alpine glibc you should probably do that