Hacker News new | past | comments | ask | show | jobs | submit login
Void Linux (voidlinux.eu)
259 points by da02 on Aug 28, 2017 | hide | past | web | favorite | 88 comments

I installed Void Linux on my new laptop this May, switching from Arch, which I'd been using for about six years. The experience is very positive overall. For desktop, I'm using AwesomeWM and NetworkManager, altho Void comes with a variety of options to choose from.

I were afraid that their Wiki is not detailed enough, and expected that some packages could be missing. However, I could easily install everything I needed from the repository (except flashplugin). TeX is installed slightly differently, but the wiki entry helps here. Regarding documentation, DuckDuckGo does not show search results from Void Wiki, so I have to use Google search instead. Documentation seems sufficient, and where I need more, I can refer to Arch wiki.

With Arch, all services seemed automatically enabled when the packages were installed, otherwise you had to use systemd commands for configuration, which seemed a bit opaque to me. In Void, which is using Runit, enabling a service (like alsa, crond, cupsd, etc) is a matter of creating a symlink, which feels very transparent and reliable. I think, I like the idea of keeping the information about your services in the plain view in the filesystem. I have never been a configuration guru, so prefer this transparency and simplicity, and it felt robust so far.

> In Void, which is using Runit, enabling a service (like alsa, crond, cupsd, etc) is a matter of creating a symlink, which feels very transparent and reliable.

It's exactly the same in systemd, although people usually use systemctl. It will report what it does:

  $ sudo systemctl enable sshd 
  Created symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.

I belive his point is that you actually use "ln -s" to activate a service, instead of it being done by some utility, without you knowing what else it might have done too.

You can just as well do the same in systemd. In fact, I'm shipping these symlinks in my configuration packages to enable services, e.g. https://github.com/majewsky/system-configuration/blob/f1326a...

Are you really reasoning in favour of some obscure program rather than a simple "ln -s"?

Dude, we have been using *nix since decades.

There is nothing wrong with keeping things simple - no need for systemd whatsoever.

Thank you, I did not know that )

I'm using arch right now, and I can't think of any packages that automatically enable their own service. I could argue for the usability and transparency of systemd, but I won't. Simply because I think it is really important that alternatives to systemd exist.

I personally like systemd as a init system and service manager, but think it is bundling too much. Variety is not just the spice of life, its needed for a health ecosystem.

As for void linux, does it have anything close to the AUR in terms of package availability?

That's a surprisingly refreshing position. Even as someone who isn't a huge fan of systemd, I can agree with you.

I'm in a weird position on systemd. I like it as an init system and I like journald and logind (not that I'm very knowledgeable about logind). However, I really dislike the bundling that is happening in systemd-world. It feels almost like an embrace - extend - extinguish approach, only for 'software opinions' as opposed to profit.

Sadly, this has become a very political debate, and I don't have first hand experience, so much of my opinion is based on biased second-hand accounts. Though I try to get accounts that are biased both ways.

See here for someone abandoning archlinux in favour of voidlinux:


Note that the primary impetus was actually not necessarily that archlinux has degraded in quality over the years ever since Judd was no longer in charge, but primarily that systemd interferes with everything.

I have this suspicion that the author may still be a happy archer, but systemd made him reconsider. And archlinux made a deliberate decision to switch to systemd without alternatives, so I really can not hold anyone but the new archlinux developers responsible for that.

Projects often change with the "under new management" syndrome - that is inevitable.

> Sadly, this has become a very political debate

This is only partially true. While I agree that there is a lot of conflict between pro-and-con systemd, the major issue is that some random guys here and there decide - and subsequently dictate - onto everyone else THEIR particular mind view. And I think that this is the much more upsetting thing.

> so much of my opinion is based on biased second-hand accounts.

Many who dislike systemd do so not because of "political reasons" but of REAL PROBLEMS THAT THEY HAVE ENCOUNTERED.

I also encounted this, such as an infinite loop of systemd at boot-up time. And I had no patience to want to debug any of it. Went back to slackware again, true and tested; it is only a base for LFS/BLFS for me though. If anyone asks, I rather use GoboLinux - but I also can not recommend anyone currently to use GoboLinux until a few more things have been resolved. It's still the best by far.

There is nothing wrong with slackware per se, mind you. It's a bit slow in its development taste for my taste ... but it is still the closest towards "oldschool linux".

Many years ago, I bought a red hat set of CD and SuSE. Installed both... had a GUI. Knew nothing what to do.

Then I installed debian. I think it was woody or potato back then... xorg did not work, but the commandline worked, so I worked through the old handbook learning *nix. :-)

That was great!

Since systemd, I no longer touch anything of debian. devuan is the true successor here - the debian devs abandoned the users.

Until then, I can recommend voidlinux for one reason - I actually know a few people who HAVE been using it since quite some time among them this famous dude:


And I know a few more ruby-folks who are still using archlinux but may consider switching. I may try to convince jhass for example ... ;) - although I do have to say, voidlinux needs a bit more polishing still.

They will surely manage.

Yeah, I might be wrong when saying that services are automatically enabled in Arch.

My understanding is that Void has xbps-src [1], [2] for installing packages from source code, and it is somewhat similar to AUR. Xbps-src package database is essencially a github repository, you clone it and use it to build and install packages for your system. I installed it and used only once to build some obscure video streaming program, which failed to compile, and I did not follow up to figure out why it failed.

[1] https://github.com/voidlinux/void-packages/blob/master/READM...

[2] https://wiki.voidlinux.eu/Xbps-src

The difference would probably be that while anyone can add (or update) a package to the AUR, the xbps-src maintainers have to explicitly allow this. On the one hand it makes it harder to start contributing, but on the other hand, there is a minimum level of quality that is maintained. After a while you get used to it though, and ultimately updates are processed pretty quickly, especially if the submitters know what they're doing.

>The difference would probably be that while anyone can add (or update) a package to the AUR, the xbps-src maintainers have to explicitly allow this.

Nothing is preventing other users to fork or start their own void-packages repo on any git hosting service of their choice. In that sense it's actually more open to contributors than the AUR. Now the experience for the end user might not be perfect if they don't know that such a repo exists.

But you can do the same with the standard arch repositories too. The (intended) advantage of the AUR was precisely that people don't have to create their own repositories that are hard to trust and have to be updated all the time, can fall out of maintenance, and only the original creator can access (quasi like Ubuntu PPA's - which I personally hate). That's not to say that the AUR has no downsides, but what you're describing wouldn't make it better, imo.

I use Void on my router:


It works really well. Runit is an interesting init system. I wish it was a little better documented.

I hope we start seeing hosted providers offering Void base images. I'm a little weary of the current state of Linux distros where everything new seems to be either Debian or RHEL based.

Why did you choose Linux over OpenBSD? I'd choose pf over iptables, although nftables looks pretty neat.

I'm guessing they assumed that BSD would have a lesser chance of having drivers for the hardware in their router (or if their router is ARM-based: specifically supporting the router's exact+particular system board and configuration of hardware) compared to Linux. A priori, I would make the same assumption; when I hear "router", I think "oh, that'll need OpenWrt".

For me it was mainly package management, and the unwillingness to get acquainted to a new userland.

But it has to be said, that void is pretty BSD-like, in some ways, and maybe someone will port pf one day (although I don't even know if that's possible at all...)

I was going to use either FreeBSD or OpenBSD, but no 802.11ac support in either. Actually I should have just went with it anyway. I could only get my car working in n mode and someone else who e-mailed me after finding that post said that particular Intel card doesn't work in AP mode in 802.11ac on Linux; had to buy a different card entirely.

To address your last concern, I use Solus on my Laptop, it's also a fully independent distro. It comes in 3 flavours targeting the desktop. It feels really well build. The community and maintainers are very responsive.

Which part of http://smarden.org/runit/ and its sub-pages do you wish to be better? And how?

As I'm satisfied with the distros I normally use, Lite and mint, I didn't check anything else for a few years. So, I'll try this out. Thanks!

Here's a great inteoduction, for anyone new or interested in using Void: http://troubleshooters.com/linux/void/whyvoid.htm

I personally use it on my raspberry pi, which operates as my server/home page (http://phi.k.vu/) and it's been fantastic for me. Far lower memory usage and much easier to configure. Xbps is fast and efficient, runit keeps it simple. It's like rediscovering linux or arch all over again, if that analogy means anything to anyone. Really deserves to be better known.

The one thing that keeps me back from using it on my laptop (where I run Debian) is that texlive has to be installed as one whole package, and the incomplete wiki is the other (although arch wiki can cover up quite well for tt's blindspots)

What is the motivation for supporting MIPS here?

I can't think of a single system that runs MIPS instructions.

Also, what does this distro do differently from the other 1000+ distos?

Why VOID? Why not something else?

I was drawn to it because it doesn't use systemd. (There seem to be a lot of people who dislike systemd.) Void uses runit instead of systemd. This has made it (for me at least) easier to use than Arch/systemd.

It was also one of the first to adopt LibreSSL.

The main downside for me is I have to manually install browsers. Void's packages for desktop software is sometimes out-of-date. But, I'm willing to overlook it because of all the other positives.

Of course, systemd is not the only option on Arch nowadays.

* https://framagit.org/taca/archnosh

Thanks for that. It says: "In other words, one can benefit from existing systemd unit files through automatic conversion in many cases." I'm worried it means, "many, but not all" cases.

There is also Manjaro Openrc. But, my buggy experience with it made me decide to go with a distro designed from scratch to use a different init system. Do you use Archnosh on a daily basis? Any issues converting systemd unit files over to nosh?

I don't use Archnosh because I do not possess an Arch Linux system. I do use the nosh toolset on a daily basis on Debian, FreeBSD, TrueOS, and OpenBSD.

I don't think that the conversion process not being capable of automatically converting every possible unit, just most of them, is something that should worry you. I suggest that you begin by reading the manual page on the subject as well as the sections on conversion in the nosh Guide and the worked example in the blurb:

* http://jdebp.eu./Softwares/nosh/guide/convert-systemd-units....

* http://jdebp.info./Softwares/nosh/guide.html

* http://jdebp.eu./Softwares/nosh/worked-example.html

That there are some outliers doing oddball things that this will not cover, requiring you to get your hands dirty writing run+stop+start+restart programs, is only a worry if you worry about writing such programs in the first place. If that is a worry, then observe that you have the same worry with runit. Ask yourself if you are worried about this with runit. (-:

* http://jdebp.info./FGA/run-scripts-and-service-units-side-by...

* http://jdebp.info./Softwares/nosh/guide/creating-bundles.htm...

At the time of writing, the nosh toolset has just over 540 pre-supplied service bundles, not counting log and etc services, from ModemManager through initctld to zfsd.

An interesting and somewhat topical example of the automatic conversion in practice was when I took the now-infamous example of a systemd unit that declared User=0day, ran it through the convertor, and started the resultant service. You can see what happened, and (more importantly) what did not happen:

* https://news.ycombinator.com/item?id=14681857

Other examples:

* mailcatcher.service: https://unix.stackexchange.com/a/200281/5132

* sickbeard.service: https://askubuntu.com/a/617822/43344

You're right about converting init files not being a problem. Looking back, it was a stupid statement on my part. Even converting the few services I run to nosh/s6/runit/etc. from systemd wouldn't be a problem... and it would be fun.

What I really want to say is: Arch is heavily tied to systemd and I don't want to use any systemd-based distro, even if I can run something alongside it.

Another option (albeit fairly new) is Artix, which is an Arch-based distro with OpenRC. It seems to have alternate repos for the base system while still having the default Arch repos for "community" and "extra" (as well as AUR compatibility, of course). I had some trouble using the graphical installer when trying it out on a spare hard drive, but booting the text image and just doing an Arch install as normal with pacstrap (which I prefer a anyhow) worked smoothly, and I haven't had any issues with it after a couple weeks trying it out.


(Writing this from a Void Linux installation:) I don't know about Chromium, but Firefox 55 was no more than a week late, which I can totally live with.

If you download a Mozilla build of Firefox into somewhere user-writable, like ~/opt/, it will update itself.

You're correct. In the past the Firefox updates were very late sometimes (based an anecdotes I've read), but the situation has improved and should keep improving as more people adopt Void.

(I manually install Google Chrome and Opera. It's difficult for package managers to maintain them because of licensing and other issues.)

> This has made it (for me at least) easier to use than Arch/systemd

Not to open up that bag of worms, but I haven't heard anyone say Systemd is harder to use. It was made to actually make it easier.

On second thought, you're right. The statment is wrong on my part. Systemd seems to have pleased the Arch developers and made their lives easier.

I was trying to say: Void seems easier to use and stable.

Thanks for pointing this out. Sorry for my carelessness.

(I still would never use a systemd-based distro. I've had fewer problems since leaving it. And I've read too many horror stories to go back. And I suspect it led to many if the problems I had installing and booting. Void has a smaller community than Arch and Ubuntu, yet installs and biots up faster on my junky machines than Arch and Ubuntu. Granted, I can't blame systemd for this.... but I'll include it anyway in the lineup of suspects.)

I'm willing to admit it could be laziness on my part. It could also be I'm doing something wrong.

The info on this page for systemd: https://wiki.archlinux.org/index.php/systemd#Writing_unit_fi... seems harder for me to understand than the info on runit: http://kchard.github.io/runit-quickstart/

The Arch wiki doco is also wrong, which probably does not help. There's a glaring error in the first paragraph there. There are in fact nine places where system-level unit files are searched for, not two. Three are in the systemd doco. Three are intentionally undocumented. Two are build-configuration-dependent and usually the same as some of the others. And one was erased from the doco for an clearly invalid reason.

* http://jdebp.eu./FGA/systemd-documentation-errata.html#Missi...

"I was drawn to it because it doesn't use systemd."

You know, Gentoo, which is way more widely used than Void, and more mature than Arch, gives you the option of going without systemd.

Don't I have to compile everything on Gentoo before installation?

It's basically what people imagine arch as (minimal), with a BSD influence, and it's modern and supported.

If you've gotten addicted to Free/OpenBSD, it might make linux palatable to you.

A very large number of home routers run Broadcom MIPS processors.

Not just Broadcom, but plenty of other networking SoCs use MIPS --- and in big-endian mode too. They're probably the only commonly encountered BE systems today.

> They're probably the only commonly encountered BE systems today.

Freescale's embedded PowerPC (e500 et. al) controllers are used in automotive powertrain ECUs (those that do not use TriCore), though it's debatable whether this counts as common.

IBM mainframes are big endian. You might say commonly encountered, depends on what circles you run in.

No systemd. Some folks will appreciate that.

Gentoo also doesn't force systemd.

Devuan also, although their initial release took ages...

Well, Debian has been known to take their time with releases, as well. One might say the Devuan developers just uphold an honored tradition. ;-)

(Just to be clear, the resulting releases have - for me at least - usually been worth waiting for.)

I met Richard Stallman in 2013. He used a Lemote Yeelong which was powered by a MIPS Loongson CPU.

Yes, what's funny about that is that is a Chinese designed processor which at first refused to pay royalties to MIPS. FYI for whoever: MIPS (the company) had major financial issues and was purchased by Imagination tech in 2013. But their patents ended up with a group of companies, including some which went to ARM. MIPS as at one point the fastest CPUs (from a millions instructions per seconds stand point) you could buy, and were in high-end SGI boxes.

I saw him recently. He is using a ThinkPad these days, probably one of those refurbed and reflashed ones with a free BIOS.

Yeap. Thinkpad X60, running libreboot and Trisquel: https://stallman.org/stallman-computing.html

In large part because someone stole his bag, computer and all.

For one, VOID has a unique package management system [1].

[1]: https://www.voidlinux.eu/usage/xbps/

It is written somehwere that this was the motivation for creating this Linux distribution. The author wanted to work on his own package manager.

What makes this "distro" more interesting than all the others IMHO is that the author is a former BSD committer.

Why is that a good thing? There's network effects to package managers. Using one of the common ones is beneficial.

I'm guessing they looked at other package managers, didn't like a bunch of decisions, and decided to write their own: XBPS claims it's totally compatible with POSIX/SUSv2/C99 standards, and released with a Simplified BSD license (2 clause). Other features: https://wiki.voidlinux.eu/XBPS#Features

From what I've read, Void was created as a testing distro for XBPS before it was merged into a BSD.

Might be wrong on that though.

I don't think any *BSD uses xbps - sadly.

Huh, I guess not. Strange, I could've sworn I read somewhere that was the case.

It's very easy to write templates for new packages and the maintainers stay really busy, so I've found that void has more packages in the main repo than almost anything else, despite its lesser popularity.

The motivation comes down to little more than a couple of the main Void developers owning a witiboard. Perhaps there's other hardware floating around but there was quite a bit of discussion on IRC surrounding the witi.

Forgot to mention: void also provides musl linked binaries for all packages.

So kinda like Alpine, but you can choose between glibc and musl.

Cheap wireless routers?

I have a 'smart' TV running Android that has a mips processor.

An actual TV itself, or do you mean the Android box connected via HDMI?

The TV itself.

Sane defaults.

crappy routers.

Apparently you aren't familiar with high end routers and network accelerator hardware.

No systemd and dwm as the default window manager? I’m sold!

I've been running it at work as my main dev OS for a couple of months now (before I ran Debian) and I've run into far less issues than I expected. It's really well done.

Before Void Linux I contemplated jumping ship to FreeBSD or OpenBSD but Void Linux combines the best of BSD and Linux for me. (Except the awesome documentation and man pages found in the BSDs and it still uses a piece of Lennartware by default (but it can be removed): PulseAudio.)

Oh, a disadvantage (at least when I installed it) was I had to go through a wiki page to get an encrypted setup. It's not in the default installer. (Wasn't too hard though.)

edit: this last paragraph might not be true, see replies

Is pulseaudio really there by default? I've been using void for a couple of years. Made the choice early on to have sndio but no pulseaudio but I don't remember ever having to particularly remove pulseaudio.

Now that you mention it, perhaps it was installed because I grabbed a Void Linux image with MATE?

I'd have to do a reinstall to check, but I've got work to do ;-) I'll update my original post if I can though.

Still, good to know it probably does not come with PA by default.

Me too, I started with Void with MATE, which brought Pulseaudio among other things. I later removed Pulseaudio, and using only ALSA.

Well I just switched from ArtixLinux (arch-openrc) to Void. I simply reformatted my partitions execpt /home and viola. Its very nice. Nicer than Artix. Clean, the BSD-style bleeds thru. I know because I have installed a _lot_ of distros on this machine.

A few screenshots. http://imgur.com/a/2IE94

Thank you very much VoidLinux devs and volunteers! Awesome work!!

I use it sucessfully to test musl with my apps.

What problems do .deb and .rpm have that .xbps solves?

From what I've seen on it's page on the wiki: Sane design. That's more than the .deb format can offer.

I don't know about the format but the Xbps package manager is crazy fast, which is nice.

If only it had a good documentation like that of Arch Linux, i would have given it a try. It seems promising, marriage of simplicity of BSD systems, and configurability and availability of vast number of packages of Linux.

I have found that the Arch wiki can be useful for any distro.

one of the main benefits of Arch is that it sticks so close to the upstream (in terms of its packages) that the wiki can be useful for everyone.

<edit> fooled

April 01 is April Fools' Day.

Haha they got me there. Maybe I should wake up properly before reading HN

"We were the first distribution to switch to LibreSSL by default, replacing OpenSSL."

I'm not seeing the wisdom in this. OpenSSL has problems so instead of fixing them incremenally we are going to leverage a complete replacement thus risk many histories repeating itself plus a bevy of new undiscovered issues that come with less mature/less utilized projects. I'm not sold on that.

LibreSSL is a fork of OpenSSL that declared it was worthwhile to remove a bunch of legacy code to incrementally fix OpenSSL. It's not a rewrite.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact