The Void repositories have a number of Python and Lua packages. If possible, install packages from the Void repositories or consider packaging the library or application you need. Packaging your application allows for easier system maintenance and can benefit other Void Linux users, so consider making a pull request for it. The contribution instructions can be found here.
To keep packages smaller, Void has separate devel packages for header files
and development tools. If you install a library or application via a language's
package manager (e.g. pip, gem), or compile one from source, you may need to
install the programming language's -devel package. This is specially relevant
for musl libc users, due to pre-built binaries usually targeting glibc
instead.
| Language | Package Manager | Void Package |
|---|---|---|
| Python3 | pip, anaconda, virtualenv, etc | python3-devel |
| Python2 | pip, anaconda, virtualenv, etc | python2-devel |
| Ruby | gem | ruby-devel |
| lua | luarocks | lua-devel |
Some packages have legal restrictions on their distribution (e.g. Discord), may be too large, or have another condition that makes it difficult for Void to distribute. These packages have build templates, but the packages themselves are not built or distributed. As such, they must be built locally. For more information see the page on restricted packages.
The Void build system runs on x86_64 servers, both for compiling and cross
compiling packages. However, some packages (e.g. libreoffice) do not support
cross-compilation. These packages have to be built locally on a computer running
the same architecture and libc as the system on which the package is to be used.
To learn how to build packages, refer to the README for the void-packages
repository.
Flatpak is another method for installing external proprietary applications on Linux. For information on using Flatpak with Void Linux, see the official Flatpak documentation.
Note that Flatpak's sandboxing will not necessarily protect you from any security and/or privacy-violating features of proprietary software.
Some apps may not function properly (e.g. not being able to access the host
system's files). Some of these issues can be fixed by installing one or more of
the xdg-desktop-portal, xdg-desktop-portal-gtk, xdg-user-dirs,
xdg-user-dirs-gtk or xdg-utils packages.
Some Flatpaks require D-Bus and/or Pulseaudio.
An AppImage is a file that bundles an application with everything needed to run it. An AppImage can be used by making it executable and running it; installation is not required. AppImages can be run in a sandbox, such as firejail.
Some of the applications for which an AppImage is available can be found on AppImageHub.
AppImages do not yet work on musl installations.
Some Octave packages require external dependencies to compile and run. For
example, to build the control package, you must install the openblas-devel,
libgomp-devel, libgfortran-devel, gcc-fortran, and gcc packages.
To use MATLAB's help browser, live scripts, add-on installer, and simulink,
install the libselinux package.