created on | August 19, 2025 |
Instead of a single program, the XBPS package manager consists of a collection of 15 programs at the time of writing. For the usual installation and maintenance of a Void Linux system, these are the four most relevant ones:
The remaining 14 programs are intended for package maintainers.
Additionally, the xtools package provides tools that are usually interesting for package maintainers only, except of the following two tools:
XBPS keeps a local index of all packages in the configured repo/mirror.
Installing Void from a Live-Installer will automatically install the files necessary to configure XBPS:
When installing Void via chroot with the XBPS method (see
For both methods, XBPS runs out of the box. However, it is recommended to configure the XBPS mirror to decrease the load on the default mirror and to improve the speed of XBPS.
There are tier 1 mirrors and tier 2 mirrors. tier 1 mirrors usually get synced within an hour or so. Tier 2 mirrors sync from a nearby Tier 1 mirror when possible.
The
Before configuring the mirror for XBPS, the topicality of the mirrors should be checked with the mirror list
available at
To sync XBPS with the mirror and update the index, use .
performs a system update. Before the update operation, XBPS should be synced with the configured mirror with . Both operations can be combined with , except when updating XBPS. In this case, must be run twice, the first time to update XBPS itself, the second time to update the rest of the system.
updates the system without asking questions, assuming ‘yes’ as the answer for any question.
XBPS does not restart services when they are updated. This task is left to the sysadmin. For finding processes running a different version of a program than the version installed, the xtools package provides
lists the process of any such service, together with its PID, path to executable, status of the path that it was launched from (might be deleted because of an update), and the process name.
A possible cause for a kernel panic after an update is that there is no space left in because of too much kernel versions installed in there.
A possible strategy to counter this is to pin the package linux (see pinned packages below) and periodically upgrade the kernel manually with after checking the space left in .
installs the package
With , specific versions or version ranges of a program can be installed. I.e. with , package banana, version 2.0, is installed, while with , banana, version 2.0 or later is installed.
and have the parameter (or, short: ). With this parameter and do not execute the specified operations but only report them, i.e. reports which packages will be installed as dependencies of package mooh, in addition to package mooh being installed. lists mooh and dependencies that are no longer needed when package mooh is uninstalled and that will be uninstalled together with package ‘mooh’.
list orphaned packages.
the XBPS GitHub page defines orphaned packages as “packages that were installed as dependencies but there is not any package currently that requires it”.
This might include packages that one wants to use independently of the package for which the package was installed as a dependency. Examples are fonts and utility programs that come with certain packages.
I.e., at the time of writing lists on my system, among other stuff, several fonts and programs like ffmpeg, xdpyinfo, which I occasionally use. reports that it will remove all these packages when running .
Package have either the package mode auto – the package has been installed as a dependency, or the package mode manual – the package has been installed explicitly by the user. The package mode can be set with , respectively .
Packages in mode manual are not detected as orphaned packages.
Packages can be pinned to their current version (set on hold in XBPS speak) with and can be unpinned with . Pinned packages do not get updated during a system update with .
However, updates a package regardless whether it is pinned or not.
cleans the cache directory and removes outdated packages and/or packages with wrong hash.
man pages of xbps-<whatever> programs
man pages of xtools
Void Linux documentation:
Void Linux documentation:
XBPS on github: