Enter the void
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 a variety of platforms. Software packages can be built natively or cross compiled through the
XBPS source packages collection
Follow us on
Mastodon
, visit the
#voidlinux
IRC channel on
libera.chat
, and join the
Void Linux subreddit
Visit the
Void build server console
for package build status updates.
Contribute to the Void Linux project by
adding and updating packages
and
extending the documentation
. More information can be found
in the Handbook
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.
Stable rolling release
Void focuses on stability, rather than on being bleeding-edge. Install once, update routinely and safely.
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.
runit
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. Refer to the
Void Handbook
for an introduction.
C library diversity
Void Linux supports both the
musl
and
GNU
libc implementations, patching incompatible software when necessary and working with upstream developers to improve the correctness and portability of their projects.
XBPS
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). Refer to the Handbook for
an overview
xbps-src
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
void-packages pull requests
xbps changes
Recent news
March 10, 2026
Changes to linux-firmware may require manual intervention
To reduce installation size, firmware provided by
linux-firmware
is now
compressed with zstd. Ensure you are running a supported kernel when updating to
linux-firmware-20260309_1
or later:
linux5.10>=5.10.251_1
linux5.15>=5.15.201_1
linux6.1>=6.1.127_1
linux6.6>=6.6.68_1
linux6.12>=6.12.7_1
linux6.18
linux6.19
, or any later version
rpi-kernel>=6.12.67_1
pinephone-kernel>=6.1.7_2
If you cannot run one of these kernels, you can hold the
linux-firmware
packages
at their currently-installed version:
# xbps-pkgdb -m hold linux-firmware linux-firmware-amd linux-firmware-broadcom \
linux-firmware-intel linux-firmware-network linux-firmware-nvidia linux-firmware-qualcomm
June 14, 2025
XBPS 0.60
What’s Changed
libxbps
: fix issues with updating packages in unpacked state.
duncaen
libxbps
: run all scripts before and after unpacking all packages,
to avoid running things in a half unpacked state.
duncaen
libxbps
: fix configuration parsing with missing trailing newline
and remove trailing spaces from values.
eater
duncaen
libxbps
: fix XBPS_ARCH environment variable if architecture
is also defined in a configuration file.
duncaen
libxbps
: fix memory leaks.
ArsenArsen
libxbps
: fix file descriptor leaks.
gt7-void
libxbps
: fix temporary redirect in libfetch.
ericonr
libxbps
: fix how the automatic/manual mode is set when replacing a
package using replaces. This makes it possible to correctly replace
manually installed packages using a transitional packages.
duncaen
libxbps
: fix inconsistent dependency resolution when a dependency
is on hold. xbps will now exit with
ENODEV
(19) if a held dependency
breaks the installation or update of a package instead of just ignoring
it, resulting in an inconsistent pkgdb.
#393
duncaen
libxbps
: fix issues with
XBPS_FLAG_INSTALL_AUTO
where already installed
packages would get marked automatically installed when they are being
updated while installing new packages in automatically installed mode.
#557
duncaen
libxbps
: when reinstalling a package, don’t remove directories that are still
part of the new package. This avoids the recreation of directories which
trips up runsv, as it keeps an fd to the service directory open that would
be deleted and recreated.
#561
duncaen
xbps-install(1)
: list reinstalled packages.
chocimier
xbps-install(1)
: in dry-run mode, ignore out of space error.
chocimier
xbps-install(1)
: fix bug where a repo-locked dependency could be updated
from a repository it was not locked to.
chocimier
xbps-fetch(1)
: make sure to exit with failure if a failure was encountered.
duncaen
xbps-fetch(1)
: fix printing uninitialized memory in error cases.
duncaen
xbps-pkgdb(1)
: remove mtime checks, they are unreliable on fat filesystems
and xbps does not rely on mtime matching the package anymore.
duncaen
xbps-checkvers(1)
: with
--installed
also list subpackages.
chocimier
xbps-remove(1)
: fix dry-run cache cleaning inconsistencies.
duncaen
xbps-remove(1)
: allow removing “uninstalled” packages (packages in the cache
that are still up to date but no long installed) from the package
cache by specifying the
-O/--clean-cache
flag twice.
#530
duncaen
xbps-query(1)
--cat
now works in either repo or pkgdb mode.
duncaen
xbps-query(1)
--list-repos/-L
list all repos including ones that
fail to open.
chocimier
xbps.d(5)
: describe ignorepkg more precisely.
chocimier
libxbps
xbps-install(1)
xbps-remove(1)
xbps-reconfigure(1)
xbps-alternatives(1)
: add
XBPS_SYSLOG
environment variable to overwrite
syslog configuration option.
duncaen
libxbps
: Resolve performance issue caused by the growing number of virtual packages
in the Void Linux repository.
#625
duncaen
libxbps
: Merge the staging data into the repository index (repodata) file.
This allows downloading the staging index from remote repositories without
having to keep the two index files in sync.
#575
duncaen
xbps-install(1)
xbps-query(1)
xbps-checkvers(1)
xbps.d(5)
: Added
--staging
flag,
XBPS_STAGING
environment variable and
staging=true|false
configuration option.
Enabling staging allows xbps to use staged packages from remote repositories.
duncaen
xbps-install(1)
xbps-remove(1)
: Print package install and removal messages once,
below the transaction summary, before applying the transaction.
#572
chocimier
xbps-query(1)
: Improved argument parsing allows package arguments anywhere in the
arguments.
#588
classabbyamp
xbps-install(1)
: Make dry-run output consistent/machine parsable.
#611
classabbyamp
libxbps
: Do not url-escape tilde character in path for better compatibility with
some servers.
#607
gmbeard
libxbps
: use the proper ASN1 signature type for packages. Signatures now have a
.sig2
extension.
#565
classabbyamp
xbps-uhelper(1)
: add verbose output for
pkgmatch
and
cmpver
subcommands if the
-v/--verbose
flag is specified.
#549
classabbyamp
xbps-uhelper(1)
: support multiple arguments for many subcommands to improve pipelined
performance.
#536
classabbyamp
xbps-alternatives(1)
: Add
-R/--repository
mode to
-l/--list
to show alternatives
of packages in the repository.
#340
duncaen
libxbps
: fix permanent (308) redirects when fetching packages and repositories.
duncaen
xbps-remove(1)
: ignores file not found errors for files it deletes.
duncaen
libxbps
: the
preserve
package metadata is now also respected for package removals.
duncaen
xbps-pkgdb(1)
: new
--checks
allows to choose which checks are run.
#352
ericonr
duncaen
Full Changelog
US