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.
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.
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 were the first distribution to switch to LibreSSL by default, replacing OpenSSL.
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).
With the OpenSSH update to 8.2 you must restart the
sshd service, or it will not accept new ssh connections.
XBPS will print a notice about this when updating OpenSSH, but we hope by posting this notice we will reach the users who don’t read the output of regular updates and avoid or minimize complications due to the update.
We considered restarting sshd automatically on update, but the policy of not restarting, enabling or otherwise interact with services during updates stands.
XBPS 0.58 was just released, with many new features and a lot of improvements. Since the last post was for 0.54, this post includes all changes and some highlights since the last post.
Some users might have noticed that removing the
plasma-desktop was very time consuming because of dependency cycles.
The dependency resolution algorithm has been completely rewritten and is now able to resolve the dependencies of
plasma-desktop within seconds.
See the pull request void-linux/xbps#78 if you are interested in what changed.
--fulldeptree flag of xbps-query(1) in combination with
-X for dependencies and reverse dependencies respectively has been improved and will now be 50x faster in the worst case scenario.
Many users tried to get rid of the default kernel or some other
For this we’ve added a new configuration keyword:
With this new keyword you can ignore packages that are pulled in by other packages as runtime dependencies.
As example you can add
linux-firmware-amd as ignored package and then uninstall the package:
# echo "ignorepkg=linux-firmware-amd" > /etc/xbps.d/10-ignore.conf # xbps-remove linux-firmware-amd
This works for any package, i.e. being able to remove
linux4.19 while keeping the
linux meta package.
Or removing the
linux meta package itself and installing only the kernel series you like to use yourself.
Another useful new feature is the new
noextract, it allows to specify patterns of
files that should not be extracted when installing or updating packages.
This allows as example to skip extracting translations the users are not interesting in, allowing to reduce the installation size.
We plan to make use of it in
xbps-src to cut down the time required to install build dependencies.
A new flag was added to xbps-install(1) which allows to download packages and its dependencies without installing them.
This now can be used to download all required
binary packages of the target pkg without the need
to have write permission to the
$ xbps-install -c $PWD/cachedir -Dy xbps
-c, --cachedir must be specified as absolute
pathname, otherwise it will treat it as relative to
--enable-debug and enable it
by default. [xtraeme]
xbps-install(1): don’t prompt if all packages in the transaction are on hold. [Mohamad Barbar]
xbps-install(1): do not silently update
any install/update transaction. If there’s a new update
xbps package, this needs to be explicitely
declared as a single transaction, i.e:
$ xbps-install -u xbps
Otherwise it will return
EBUSY (16), making this a proper
error code to diagnose what failed. [xtraeme]
--enable-lto and don’t enable it
by default. [xtraeme]
Multiple bugs with packages on hold were fixed. [xtraeme]
17 new test cases were added in this release, 6 people were involved: Juan RP, Piotr Wójcik, Duncan Overbruck, Doan Tran Cong Danh, Mohamad Barbar, q66.
Multiple changes and improvements to the transaction fetch code. [duncaen]
Verify revision in
to handle properly package names that use
Try to find a usable shell instead of using
when executing package scripts. [Gottox]
xbps now builds with tcc and pcc. [xtraeme]
xbps now uses the transactional file checks for package removals, this fixes issues where xbps removes wrong files, if a package replaces another packages with the same files. [duncaen]
Updated zsh completions. [leah2]
xbps_transaction_prepare() always returning
ENXIO because the transaction dictionary wasn’t
initialized before first use. Regression from 0.54. [xtraeme]
Fixed unlocking the pkgdb via
Fixed an issue with multi threaded for each loops processing the first slicecount*maxthreads entries twice. [duncaen]
Fixed an issue with happy eyeballs, where when a socket fails within the connection delay it aborts with the error instead of continuing with the next address. [jnbr]
Fixed a build failure on ppc64. [q66]
Fixed a build failure on x86. [duncaen]
Fixed cross compilation with