Recent from talks
Contribute something
Nothing was collected or created yet.
Void Linux
View on Wikipedia| Void Linux | |
|---|---|
| Developer |
|
| OS family | Linux (Unix-like) |
| Working state | Current |
| Source model | Open source |
| Initial release | 2008 |
| Latest release | Rolling release / installation medium 2 February 2025[1] |
| Marketing target | General purpose |
| Package manager |
|
| Supported platforms | |
| Kernel type | Monolithic (Linux) |
| Userland | GNU + Glibc or GNU + Musl |
| Influenced by | NetBSD |
| Default user interface | Command-line interface (Bourne shell as the default shell), Xfce |
| License | Various licenses; Void-made software is mostly licensed under BSD 2-clause |
| Official website | voidlinux |
Void Linux[3] is an independent Linux distribution that uses the X Binary Package System (XBPS) package manager, which was designed and implemented from scratch, and the runit init system. Excluding binary kernel blobs, a base install is composed entirely of free software (but users can access an official non-free repository to install proprietary software as well).[4][5]
History
[edit]Void Linux was created in 2008 by Juan Romero Pardines, a former developer of NetBSD,[6] to have a test-bed for the XBPS package manager. The ability to natively build packages from source using xbps-src is likely inspired by pkgsrc and other BSD ports collections.[7]
In May 2018, the project was moved to a new website and code repository by the core team after the project leader had not been heard from for several months.[8][9][10]
In May 2024, Void was the highest rated project on DistroWatch, with a score of 9.26 out of 10.[11]
Features
[edit]Void is a notable exception to the majority of Linux distributions because it uses runit as its init system instead of the more common systemd used by other distributions.[12] It is also unique among distributions in that separate software repositories and installation media using either glibc or musl are available.
Void was the first distribution to incorporate LibreSSL[3] as the system cryptography library by default.[2] In February 2021, the Void Linux team announced Void Linux would be switching back to OpenSSL on March 5, 2021. Among the reasons were the problematic process of patching software that was primarily written to work with OpenSSL, the support for some optimizations and earlier access to newer algorithms.[13] A switch to OpenSSL began in April 2020 in the GitHub issue of the void-packages repository where most of the discussion has taken place.[14]
Due to its rolling release nature, a system running Void is kept up-to-date with binary updates from the repositories in contrast with a point release. [15] Source packages are maintained on GitHub and can be compiled using the xbps-src build system.[16] The package build process is performed in a clean environment, not tied to the current system, and most packages can be cross-compiled for foreign architectures.
As of April 2017, Void Linux supports Flatpak, which allows the installation of the latest packages from upstream repositories.[17]
Editions
[edit]Void Linux can be downloaded as a base image or as a flavor image. The base image contains little more than basic programs; users can then configure an environment for themselves. The flavor image contains a pre-configured Xfce desktop environment. Cinnamon, Enlightenment, LXDE, LXQt, MATE, and GNOME used to be offered as pre-packaged live images, but are no longer offered "in order to decrease the overhead involved with testing."[18][19]
The live images contain an installer that offers a ncurses-based user interface. The default root shell is Dash.[15]
| Platform | C library | Desktop environment | ||
|---|---|---|---|---|
| glibc | musl | Xfce | ||
| i686 | Yes | No | Yes | |
| amd64 | Yes | |||
| ARM-based | ||||
| Raspberry Pi 1/2/3/4/5 | Yes | No[note 1] | ||
Derivatives
[edit]Void Linux for PowerPC/Power ISA (unofficial) was[21] a fork of Void Linux for PowerPC and Power ISA, with the project ending in early 2023. It supported 32-bit and 64-bit devices, big-endian and little-endian operation, and musl and glibc. Void-ppc maintained its own build infrastructure and package repositories, and aimed to build all of Void Linux's packages on all targets. It was a fork largely because of technical issues with Void Linux's build infrastructure.[22]
Project Trident was a Linux distribution based on Void Linux,[23] but was discontinued[24] in March of 2022.[25]
Reception
[edit]In February 2023, Jesse Smith, of DistroWatch, said "The Void distribution is one of the fastest, lightest, most cleanly designed Linux distributions I've had the pleasure of using. Everything is trim, efficient, and surprisingly fast." Also, "Void has a relatively small repository of software [but] most of the key applications are there."[26]
Notes
[edit]- ^ Can be installed separately.
References
[edit]- ^ "February 2025 Image Release: Arm64 Extravaganza". Void Linux. February 2, 2025. Retrieved 25 February 2025.
- ^ a b "The Void (Linux) distribution". Archived from the original on 2019-02-07. Retrieved 2021-10-19.
- ^ a b "Void". DistroWatch. Archived from the original on 2018-06-14. Retrieved 2015-09-22.
- ^ Wallen, Jack (October 27, 2017). "Void Linux: A Salute to Old-School Linux". Linux.com. Archived from the original on February 28, 2019. Retrieved May 2, 2021.
- ^ Smith, Jesse (2017-05-29). "Returning to the Void". DistroWatch Weekly. DistroWatch. Archived from the original on 2019-07-30. Retrieved 2021-05-02.
- ^ Baader, Hans-Joachim (2015-06-12). "Void Linux: Distribution mit XBPS-Paketverwaltung" (in German). Pro-Linux. Archived from the original on 2021-05-02. Retrieved 2021-05-02.
- ^ "Hackover Vortrag zu Void Linux" (in German). 2014-10-25. Archived from the original on 2015-09-23. Retrieved 2015-09-22.
- ^ "Serious Issues". voidlinux.org. May 2018. Archived from the original on 1 April 2019. Retrieved 10 July 2018.
- ^ "GitHub Organisation is moving". voidlinux.org. 3 June 2018. Archived from the original on 1 April 2019. Retrieved 10 July 2018.
- ^ Aldridge, Michael (November 28, 2018). "ENOBDFL". Archived from the original on 2019-08-30. Retrieved 2019-05-22.
- ^ "DistroWatch Project Ranking". DistroWatch. Archived from the original on 2019-08-22. Retrieved 2023-07-24.
- ^ "Without Systemd". Archived from the original on 2020-05-11. Retrieved 2015-09-22.
- ^ "Switching back to OpenSSL". 23 February 2021. Archived from the original on 2021-10-16. Retrieved 2021-03-01.
- ^ "[RFC] Switching back to OpenSSL #20935". GitHub. Archived from the original on 2021-02-28. Retrieved 2021-03-01.
- ^ a b Jesse Smith (2015-04-06). "Looking into the Void distribution". DistroWatch Weekly. DistroWatch. Archived from the original on 2018-06-28. Retrieved 2015-09-22.
- ^ The XBPS source packages collection on GitHub
- ^ "Flatpak". 2017-04-14. Archived from the original on 2019-04-01. Retrieved 2018-08-11.
- ^ "Index of /live/20210218". Archived from the original on 2021-11-20. Retrieved 2021-11-08.
- ^ "Void Downloads". Archived from the original on 2021-10-18. Retrieved 2021-11-08.
- ^ "March 2024 Image Release (and Raspberry Pi 5 support)". 14 March 2024. Retrieved 5 April 2024.
- ^ "Project status update for 2023". Archived from the original on 2022-09-16. Retrieved 2022-10-04.
- ^ "About - Void Linux for PPC (unofficial) documentation". 2019-09-20. Archived from the original on 2020-10-31. Retrieved 2020-10-27.
- ^ "Project Trident Ditches BSD for Linux". 2019-10-19. Archived from the original on 2021-03-08. Retrieved 2021-02-22.
- ^ "Project Trident Sunset". 29 October 2021. Archived from the original on 23 December 2021.
- ^ "After Moving From FreeBSD to Void Linux, Project Trident Finally Discontinues". It's FOSS News. 2021-11-04. Archived from the original on 2023-01-21. Retrieved 2023-01-21.
- ^ Smith, Jesse (2023-02-20). "Underrated distributions". Distrowatch. Archived from the original on 2023-02-23. Retrieved 2023-02-24.
External links
[edit]Void Linux
View on GrokipediaHistory
Founding and early development
Void Linux was founded in 2008 by Juan Romero Pardines, a former NetBSD developer known online as xtraeme, with the primary goal of serving as a testbed for the XBPS package manager that he had begun developing.[6][7][8] Pardines, drawing from his experience maintaining packages in NetBSD, sought to create a dedicated environment to refine XBPS without dependencies on existing Linux distributions. This initiative marked the project's roots in fostering an original package management approach tailored for efficiency and portability. The design of XBPS and its companion build system, xbps-src, was influenced by NetBSD's pkgsrc framework and the broader BSD ports collections, which prioritize source-based package construction for flexibility across systems.[6] Early efforts emphasized reproducibility, leading to the development of xbps-src as a tool for compiling packages from source within isolated chroot environments to minimize contamination and ensure clean builds.[9] The project's inaugural Git repository, void-packages, was imported on September 26, 2008, establishing the foundation for the source packages collection. This was soon followed by the initial import of the core XBPS repository on August 17, 2009, enabling the first practical implementations of the package system.[2] From the outset, Void Linux differentiated itself by pursuing a lightweight and fully independent structure, avoiding reliance on binaries or infrastructures from major distributions such as Debian or Arch Linux. Instead, it was constructed from the ground up by a volunteer community, prioritizing minimalism and self-sufficiency in its core components.[10][1] This approach allowed for rapid iteration during the formative years, with a focus on core utilities and a rolling release model that would later incorporate alternatives like the runit init system. By the mid-2010s, these elements had solidified Void's identity as a distinct, volunteer-driven Linux distribution.Recent developments
In May 2018, the Void Linux project underwent a significant infrastructure relocation following the disappearance of its founder and lead developer, Juan Romero Pardines, which led to loss of access to the original GitHub organization and domain controls due to serious operational issues. The community responded by migrating to a new GitHub organization under void-linux and securing alternative domain arrangements to ensure continuity, allowing development to proceed without interruption.[11] The unofficial PowerPC port discontinued support in early 2023, while Void Linux officially discontinued the mini flavor for container images to streamline maintenance efforts. This decision focused resources on more actively maintained platforms like x86_64 and ARM, reducing the burden on a volunteer-driven team while preserving core functionality for primary users.[12][13] In May 2024, Void Linux achieved the highest ranking among Linux distributions on DistroWatch based on user reviews, attaining a score of 9.26 out of 10, reflecting strong community appreciation for its stability and performance. The project continued to leverage its XBPS package manager and expanded musl libc support in subsequent updates.[14] Enhanced ARM64 support was introduced in the February 2025 image release, emphasizing compatibility with ARM devices such as Raspberry Pi models and Apple Silicon hardware through arm64 UEFI live ISOs for both glibc and musl variants. On April 1, 2025, the community issued a satirical announcement for "Void Linux: Enterprise Edition," poking fun at corporate Linux adaptations with exaggerated features like premium support and ROI optimization, underscoring the project's lightweight, independent ethos.[15][4] In June 2025, the project released XBPS 0.60, featuring fixes for package updates in unpacked states, memory leaks, dependency resolution improvements, and a new staging flag for using staged packages.[16]Technical features
Init and service management
Void Linux employs runit as its default init and service supervision system, a choice made since switching from systemd in July 2014 to prioritize simplicity and independence from complex dependencies.[2] Runit serves as a lightweight, dependency-free process supervisor that replaces traditional init systems, enabling reliable management of daemons and services without the overhead of more monolithic alternatives.[1][17] This approach aligns with Void's philosophy of minimalism, allowing compatibility with alternative C libraries like musl while maintaining a small codebase that facilitates auditing for bugs and security issues.[5] The boot process in Void Linux follows runit's three-stage structure, executed as process ID 1 (PID 1). In stage 1, runit runs the script/etc/runit/1 to perform basic system initialization tasks, such as setting up the console and essential devices; if this stage fails critically (exiting with code 100), the system skips to shutdown without starting services.[18] Stage 2 executes /etc/runit/2, which typically launches runsvdir to supervise services defined in /var/service, continuing until a shutdown signal is received; this stage handles ongoing system operation and restarts itself on certain failures (exit code 111).[18] Finally, stage 3 invokes /etc/runit/3 for cleanup and shutdown procedures, such as unmounting filesystems, followed by halting or rebooting based on the presence of specific files like /etc/runit/reboot.[18] This staged design ensures a clean, predictable boot sequence with minimal interference, promoting stability in diverse hardware environments.
Service management under runit is handled through directory-based configuration in /etc/sv, where each service resides in a subdirectory containing an executable run script that defines how to start the daemon.[17] To enable a service, administrators create a symbolic link from the service directory to /var/service, allowing runit's supervisor (runsv) to automatically start and monitor it; for example, enabling the DHCP client involves linking /etc/sv/dhcpcd to /var/service/dhcpcd.[17] Services can be controlled dynamically using the sv utility—for instance, sv up <service> starts it, sv down <service> stops it, and sv status <service> checks its state—while disabling requires removing the symlink or adding a down file to the service directory.[17] Each service runs in a clean process environment with dedicated logging via a companion log service, ensuring that logs persist as long as the main process is active, which simplifies troubleshooting.[17]
Runit's design emphasizes lightweight operation, with its compact implementation contributing to faster boot times and reduced resource usage compared to init systems that centralize extensive functionality in PID 1.[17][10] The separation of service supervision from the init process also eases debugging, as individual services can be isolated and inspected without affecting the core boot mechanism, avoiding the complexities often associated with dependency-heavy systems.[17] For desktop environments requiring systemd-specific features like session tracking, Void integrates elogind, a standalone extraction of systemd's logind component, which manages user sessions, power events, and D-Bus interactions independently of runit.[19] Installing the elogind package and enabling its service (along with system D-Bus) provides compatibility layers for tools like GNOME or KDE, ensuring seamless operation without adopting systemd fully.[19]
Package management system
Void Linux employs the X Binary Package System (XBPS), a package manager developed from scratch by the Void Linux team to handle binary packages efficiently.[20] XBPS supports installation, updates, and removal through dedicated commands such asxbps-install, xbps-query, and xbps-remove, while incorporating built-in integrity checks using SHA256 hashes to verify package contents and detect issues like missing files or unresolved dependencies.[20] Additionally, it enforces cryptographic verification via RSA signatures on remote repositories, ensuring package authenticity and preventing tampering.[21]
Complementing XBPS is the xbps-src tool, which facilitates source-based package building in a clean chroot environment to isolate the process and maintain system hygiene.[9] This setup promotes full reproducibility, with features like the --reproducible flag in xbps-install enabling deterministic builds by standardizing timestamps and other variables.[22]
The package ecosystem adopts a hybrid binary/source model tailored for Void Linux's rolling release cycle, where users can synchronize the system via xbps-install -Su to fetch the latest binaries.[20] Updates operate atomically through transactional mechanisms, ensuring that operations either complete fully or roll back entirely to avoid partial failures and maintain system stability.[21]
Default repositories include main for core open-source software, nonfree for proprietary components, multilib for 32-bit compatibility on 64-bit systems, and debug for debugging symbols, collectively offering over 10,000 packages as of 2025.[23][24]
Since April 2017, Void Linux has integrated Flatpak support directly into its repositories for both musl and glibc variants across all architectures, allowing seamless installation of third-party applications outside the XBPS ecosystem via xbps-install [flatpak](/page/Flatpak) followed by Flathub repository addition.[25] Other alternatives include AppImage, a portable format for distributing applications; however, AppImages built for glibc may not run on the musl libc variant due to dynamic linking dependencies, as detailed in the Library and kernel support section.[26] In such cases, users can opt for the glibc variant of Void Linux, Flatpak, or building from source.
Library and kernel support
Void Linux provides dual support for two implementations of the C standard library: the GNU C Library (glibc), which serves as the standard option for broad compatibility with existing software, and musl libc, a lightweight alternative designed for simplicity, standards compliance, and reduced resource usage.[27] This dual approach is facilitated by maintaining separate repositories for glibc and musl variants, ensuring that packages built against one library do not conflict with those using the other and allowing users to select based on their needs, such as portability or performance in constrained environments.[1] For instance, musl-linked binaries are available directly in official repositories alongside glibc versions, with developers patching upstream software to enhance musl compatibility where necessary.[27] Due to the differences between glibc and musl libc, some software formats like AppImages, which are typically built against glibc, may not run on the musl variant of Void Linux.[28] This incompatibility stems from AppImages' reliance on the glibc dynamic linker and associated libraries, which are not available in musl-based systems.[26] To address this, users can opt for the glibc variant of Void Linux for better compatibility with such applications, or utilize alternatives such as Flatpak, which is supported on Void Linux, or compile applications from source.[29] In terms of cryptographic libraries, Void Linux defaulted to LibreSSL as its primary SSL/TLS implementation from 2014 until March 2021, when it switched back to OpenSSL to address challenges in maintaining LibreSSL.[2] The transition, effective March 5, 2021, was driven by difficulties in backporting security patches from upstream LibreSSL and replicating performance optimizations available in OpenSSL, which had become essential for modern applications.[30] This change minimized disruptions for most users while improving long-term maintainability and efficiency in handling cryptographic operations.[30] The distribution employs the standard monolithic Linux kernel without custom modifications by default, offering users flexibility through multiple kernel series available in its repositories.[1] These include long-term support (LTS) variants such as linux5.15 and linux6.6, as well as the latest mainline releases like linux6.12, allowing installation of specific versions via the package manager to suit stability or feature requirements.[31] Kernel packages are named according to their series (e.g., linux6.12), and users can query and switch between them seamlessly, with no proprietary or altered kernel provided out-of-the-box.[31] Void Linux supports cross-compilation for a range of architectures through its xbps-src build system, enabling the creation of packages for targets beyond the host machine.[9] Supported architectures include x86_64, i686, aarch64, armv6l, armv7l, and mips64el, with optimizations tailored for embedded systems such as ARM-based devices, where reduced footprint and static builds are prioritized.[9] This capability, powered by cross-compiler packages like cross-armv7l-linux-gnueabihf, facilitates development for diverse hardware without native environments.[32] The base system of Void Linux is designed to be minimal, prioritizing a small footprint and reduced dependencies through the encouragement of static linking, particularly when using musl libc.[27] Musl's architecture supports static compilation more readily than glibc, allowing binaries to be self-contained and portable across systems, which aligns with Void's philosophy of simplicity and efficiency in core components like the XBPS recovery tools.[33] This approach results in a lean installation that avoids unnecessary shared libraries, enhancing reliability in resource-limited setups.[34]Installation and configuration
Installation process
The installation of Void Linux typically begins with downloading an official live ISO image from the project's website, available in variants for different architectures (x86_64, i686, ARM) and C library implementations (glibc or musl).[35] Users select the appropriate ISO based on their hardware and preferences, such as musl for a lighter footprint or glibc for broader software compatibility. Verification of the download using checksums is recommended to ensure integrity.[36] To create bootable media, write the ISO to a USB drive or SD card. On Linux systems, identify the target device (e.g.,/dev/sdX for USB or /dev/mmcblkX for SD) using [fdisk](/page/Fdisk) -l, unmount it with umount, and use the dd command: dd bs=4M if=path/to/void-live-image.iso of=/dev/sdX status=progress && sync. This process erases all data on the device. On Windows, tools like Rufus can be used in DD Image mode to write the ISO to the USB drive. For CD/DVD media, burn the ISO using standard disk-burning software.[36]
Boot the system from the prepared media by entering the BIOS/UEFI settings (typically via F2, F10, or Del key) and selecting the USB or optical drive as the first boot device. Determine in advance if the system uses BIOS (legacy) or UEFI mode, as this affects partitioning: MBR for BIOS or GPT with an EFI partition for UEFI. Upon booting the live environment, log in as root with the default password voidlinux. If the system has sufficient RAM (at least 2 GB recommended), optionally load the image fully into memory by appending toram to the boot parameters in the GRUB menu for a faster installation process.[37]
Launch the ncurses-based installer by running void-installer as root. The interface guides through sequential steps: first, select the keyboard layout (e.g., us for QWERTY). Next, configure networking by choosing the primary interface; for wired connections, DHCP is automatic, while wireless requires entering the SSID, encryption type (WPA or WEP), and password—manual setup may involve wpa_supplicant and dhcpcd if needed. Select the package source as "Local" (using cached packages from the live image) or "Network" for online mirrors.[37]
Proceed to set the hostname (lowercase, no spaces), locale (glibc images only; musl lacks locale support), and timezone from predefined options. Enter and confirm the root password, then create a user account with username (default void), full name, password, and group memberships (default includes wheel, which requires enabling sudo separately). Select the target disk for bootloader installation—GRUB2 is the default, with an option for a graphical menu—or skip to "none" for manual setup later.[37]
Next, proceed to disk partitioning using the integrated cfdisk tool for manual setup. Create partitions as needed—for UEFI, include a 200 MB to 1 GB FAT32 EFI system partition mounted at /boot/efi; for BIOS, use an MBR or BIOS boot partition. After partitioning, assign filesystems (e.g., ext4 for root) and mount points via the installer's prompts, then confirm with "Done." The installer installs the base system, incorporating the runit init system. Review all settings, then initiate the installation, which formats filesystems, installs the base system packages, generates the initramfs, and configures the bootloader. Upon completion, shut down, remove the media, and reboot into the new system.[37]
For ARM devices like the Raspberry Pi, the process differs as pre-built rootfs images are provided instead of live ISOs with the installer. Download the compressed image (e.g., .img.xz) for the specific model (Pi 1/Zero: armv6l; Pi 2: armv7l; Pi 3/4/5: aarch64), verify it, and decompress with unxz. Flash to an SD card using dd if=image.img of=/dev/mmcblk0 bs=4M status=progress && sync. Insert the SD card, power on the device, and the root partition auto-expands on first boot. For serial console access (useful for headless setup), enable the UART via device tree overlays in /boot/config.txt (e.g., enable_uart=1) and connect a USB-to-TTL adapter; log in as root with password voidlinux. Post-boot, install device-specific packages like rpi-kernel for full hardware support.[38][39]
Post-installation setup
After the initial boot into the newly installed Void Linux system, the first step is to update the package database and installed packages to ensure the system is current with the latest security patches and software versions. This is accomplished by running the commandsudo xbps-install -Su as root or a user with appropriate privileges, which synchronizes the repository indexes and upgrades all packages.[20] If the xbps package itself is updated during this process, the command may need to be executed a second time to complete the transaction, as updates to the package manager occur in a separate step.[20]
Void Linux utilizes the runit init system for service management, where services are enabled by creating symbolic links from their definition directories in /etc/sv/ to /var/service/, allowing them to start automatically on boot. For example, to enable the OpenSSH server for remote access, execute ln -s /etc/sv/sshd /var/service/ followed by sv up sshd to start it immediately; this links the service and supervises its operation without requiring a reboot.[17] Similar commands apply to other services, such as dhcpcd for networking, ensuring they run persistently across sessions.[17]
Network configuration post-installation typically involves enabling and customizing the appropriate services based on the hardware. For wired Ethernet connections using DHCP, the dhcpcd service is often pre-enabled for default interfaces, but for a specific interface like enp3s0, copy the service directory with cp -R /etc/sv/dhcpcd-eth0 /etc/sv/dhcpcd-enp3s0, edit the run file to replace eth0 with the target interface using sed -i 's/eth0/enp3s0/' /etc/sv/dhcpcd-enp3s0/run, and enable it via ln -s /etc/sv/dhcpcd-enp3s0 /var/service/.[40] For wireless networks, the wpa_supplicant package is installed by default; configure it by editing /etc/wpa_supplicant/wpa_supplicant.conf to add network blocks, such as generating a WPA-PSK entry with wpa_passphrase <SSID> <passphrase> >> /etc/wpa_supplicant/wpa_supplicant.conf, then enable the service with ln -s /etc/sv/wpa_supplicant /var/service/ and adjust options in /etc/sv/wpa_supplicant/conf for the interface and driver if needed.[41] Interfaces can be verified with ip link show or wireless status checked via rfkill.[40]
To set up a graphical user interface, install a desktop environment using the XBPS package manager, such as XFCE with sudo xbps-install xfce4, which pulls in necessary dependencies like Xorg for display server support.[20] For display manager integration, packages like KDE Plasma automatically include SDDM upon installation via sudo xbps-install kde-plasma, enabling the service with ln -s /etc/sv/sddm /var/service/ to handle user logins and session starts.[42] In minimal setups without a display manager, users can initiate X11 sessions manually by configuring ~/.xinitrc to execute the desired environment, for instance, adding exec startxfce4 at the end of the file and launching with startx, which sources the script to set environment variables and start the window manager.[43]
User-specific customizations enhance usability and security. Although the installation adds the user to the wheel group, sudo is not enabled by default; to grant sudo privileges, edit /etc/sudoers with visudo as root and uncomment the line %wheel ALL=(ALL) ALL to allow password-authenticated administrative commands for wheel members, as Void's base installation provides root access directly but recommends user accounts for daily operations.[44] The .xinitrc file in the user's home directory further allows personalization of X11 sessions, such as launching specific applications or setting variables before the desktop environment starts, ensuring a tailored graphical experience.[45]
Basic security hardening involves configuring a firewall and maintaining updates. Install the runit-iptables package with sudo xbps-install runit-iptables to integrate iptables rules into the runit boot process, then define rules in /etc/iptables.rules (e.g., allowing SSH on port 22 with -A INPUT -p tcp --dport 22 -j ACCEPT and default drop policy) and apply them via iptables-restore < /etc/iptables.rules; enabling the service ensures rules persist on boot.[46] Regular system updates via xbps-install -Su address vulnerabilities, with tools like xcheckrestart from the xtools package identifying and restarting outdated processes post-update.[20]