void logo void logo

The Void (Linux) distribution

Void is a general purpose operating system, based on the monolithic Linux® kernel. Its package system allows you to quickly install, update and remove software; software is provided in binary packages or can be built directly from sources with the help of the XBPS source packages collection.

It is available for the Intel x86®, ARM® and MIPS® processor architectures; Software packages can be built natively or cross compiling through the XBPS source packages collection.

Not a fork!

Void Linux is an independent distribution, developed entirely by volunteers.

Unlike trillions of other existing distros, Void is not a modification of an existing distribution. Void's package manager and build system have been written from scratch.

Rolling release

Install once, update daily. Your system will always be up-to-date.

Thanks to our continuous build system, new software is built into binary packages as soon as the changes are pushed to the void-packages repository.


We use runit as the init system and service supervisor.

runit is a simple and effective approach to initialize the system with reliable service supervision. See the usage page for a brief introduction.


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

Due to the Heartbleed fiasco, we believe that the OpenBSD project has qualified and pro-active developers to provide a more secure alternative.


xbps is the native system package manager, written from scratch with a 2-clause BSD license.

xbps allows you to quickly install/update/remove software in your system and features detection of incompatible shared libraries and dependencies while updating or removing packages (among others). See the usage page for a brief introduction.


xbps-src is the xbps package builder, written from scratch with a 2-clause BSD license.

This builds the software in containers through the use of Linux namespaces, providing isolation of processes and bind mounts (among others). No root required!

Additionally, xbps-src can build natively or cross compile for the target machine, and supports multiple C libraries (glibc and musl currently).

void-packages changes

xbps changes

January 19, 2020

New images and new verification keys

We’re pleased to announce that the 20191109 image set has been promoted to current and is now generally available.

A change that comes along with these new images is the adoption of signify(1) to verify images. We’re saying goodbye to PGP due to the complexity involved, the relative difficulty in verifying the resulting signature, and the questionable state of PGP key distribution right now.

The downloads page has been updated with instructions for how you can validate new images, and we hope you’ll find this process easier and faster than in previous releases.

August 13, 2019

xbps bug results in missing /bin/sh

Due to a bug in xbps there was an issue this morning where /bin/sh disappeared after an update.

The bug was fixed quickly, but there’s a 2h window where an update may have resulted in a broken system.

If you’re affected by this issue you may experience error messages like these during boot:

runit: fatal: unable to start child: /etc/runit/1 file does not exist

These are the steps to recover your system:

Case 1: System is still running and you have a working shell open

Run the following command as root:

# xbps-install -Su

Afterwards your system should update xbps and recreate /bin/sh

Case 2: System has rebooted or no shell is opened anymore

Restart your system

                              GNU GRUB  version 2.02

  │*Void GNU/Linux                                                             │
  │ Advanced options for Void GNU/Linux                                        │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │
  │                                                                            │

       Use the ↑ and ↓ keys to select which entry is highlighted.
       Press enter to boot the selected OS, `e' to edit the commands
       before booting or `c' for a command-line.

Once grub comes up, select the kernel you want to boot and press E.

                              GNU GRUB  version 2.02

  │          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --\│↑
  │hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  XXXXXXXX-XXXX-XXXX-XXXX-\│
  │XXXXXXXXXXXX                                                                │
  │        else                                                                │ 
  │          search --no-floppy --fs-uuid --set=root XXXXXXXX-XXXX-XXXX-XXXX-X\│ 
  │XXXXXXXXXXX                                                                 │
  │        fi                                                                  │ 
  │        echo        'Loading Linux 4.19.15_1 ...'                           │ 
  │        linux        /boot/vmlinuz-4.19.15_1 ro  loglevel=4 slub_debug=P pa\│ 
  │ge_poison=1 rd.break                                                        │
  │        echo        'Loading initial ramdisk ...'                           │ 
  │        initrd        /boot/initramfs-4.19.15_1.img                         │ 
  │                                                                            │

       Minimum Emacs-like screen editing is supported. TAB lists 
       completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for   
       a command-line or ESC to discard edits and return to the GRUB menu.

find the line that starts with linux /boot/... and add rd.break at the end of the line. Make sure it is seperated with a space from the rest of the line

Afterwards Press Ctrl + X to boot the configuration.

  Dropping to debug shell.


Once you’ve got a shell execute the following commands:

  dracut:/# mount -o remount,rw /sysroot
  dracut:/# chroot /sysroot xbps-alternatives -s bash
  dracut:/# exit

Afterwards the system should work as expected.

Please use xbps-install -Su to fetch the newest xbps version that fixes this bug.

If it doesn’t help

Join over on #voidlinux in freenode or ask on reddit.