Void 是一个通用的操作系统,基于单体 Linux 内核。它的软件包系统允许您快速安装、更新和删除软件;软件以二进制包的形式提供,也可以在 XBPS 源码包集合的帮助下直接从源码构建。
它适用于多种平台。软件包可以通过 XBPS 源码包集合 进行本地构建或交叉编译。
在 Mastodon 上关注我们,访问 libera.chat 上的 #voidlinux IRC 频道,并加入 Void Linux Reddit 社区。
访问 Void 构建服务器控制台 以获取软件包构建状态更新。
通过 添加和更新软件包 以及 扩展文档 来为 Void Linux 项目做出贡献。更多信息可以在 使用手册 (Handbook) 中找到。
Void Linux 是一个独立的发行版,完全由志愿者开发。
与无数其他现有发行版不同,Void 不是现有发行版的修改版。Void 的包管理器和构建系统都是从零开始编写的。
xbps 是原生系统包管理器,采用 2-clause BSD 许可从零开始编写。
XBPS 允许您在系统中快速安装/更新/删除软件,并在更新或删除包时具有 不兼容共享库 和 依赖项 的检测功能。请参阅手册以获取 概览。
xbps-src 是 xbps 包构建器,采用 2-clause BSD 许可从零开始编写。
它通过使用 Linux 命名空间 在 容器 中构建软件,提供进程隔离和绑定挂载等功能。不需要 root 权限!
此外,xbps-src 可以为目标机器进行本地构建或交叉编译,并支持多种 C 库(目前为 glibc 和 musl)。
为了减小安装体积,linux-firmware 提供的固件现在改用 zstd 进行压缩。在更新到 linux-firmware-20260309_1 或更高版本时,请确保您正在运行受支持的内核:
linux5.10>=5.10.251_1linux5.15>=5.15.201_1linux6.1>=6.1.127_1linux6.6>=6.6.68_1linux6.12>=6.12.7_1linux6.18, linux6.19 或任何更高版本rpi-kernel>=6.12.67_1pinephone-kernel>=6.1.7_2如果您无法运行这些内核之一,可以将 linux-firmware 软件包锁定在当前安装的版本:
# xbps-pkgdb -m hold linux-firmware linux-firmware-amd linux-firmware-broadcom \
linux-firmware-intel linux-firmware-network linux-firmware-nvidia linux-firmware-qualcomm
libxbps: 修复了在未解压状态下更新包的问题。duncaen
libxbps: 在解压所有包之前和之后运行所有脚本,以避免在半解压状态下运行任务。duncaen
libxbps: 如果配置文件中也定义了架构,则修复 XBPS_ARCH 环境变量。duncaen
libxbps: 修复内存泄漏问题。ArsenArsen
libxbps: 修复文件描述符泄漏问题。gt7-void
libxbps: 修复 libfetch 中的临时重定向问题。ericonr
libxbps: 修复了使用 replaces 替换包时自动/手动模式的设置方式。这使得通过过渡包正确替换手动安装的包成为可能。duncaen
libxbps: 修复了当依赖项处于锁定 (hold) 状态时不一致的依赖解析问题。如果被锁定的依赖破坏了包的安装或更新,xbps 现在将以 ENODEV (19) 退出,而不是直接忽略它,从而避免导致不一致的 pkgdb。#393 duncaen
libxbps: 修复了 XBPS_FLAG_INSTALL_AUTO 的问题,即在自动安装模式下安装新包时,正在更新的已安装包会被错误地标记为自动安装。#557 duncaen
libxbps: 重新安装包时,不要移除仍属于新包的目录。这避免了因目录重建而导致 runsv 出错的问题(runsv 保持着服务目录的打开句柄,如果被删除并重建会受影响)。#561 duncaen
xbps-install(1): 列出重新安装的包。chocimier
xbps-install(1): 在干跑 (dry-run) 模式下,忽略空间不足错误。chocimier
xbps-install(1): 修复了仓库锁定 (repo-locked) 的依赖可能会从非锁定仓库更新的漏洞。chocimier
xbps-fetch(1): 确保在遇到故障时以失败状态退出。duncaen
xbps-fetch(1): 修复在错误情况下打印未初始化内存的问题。duncaen
xbps-pkgdb(1): 移除 mtime 检查,因为它们在 fat 文件系统上不可靠,且 xbps 不再依赖 mtime 匹配包。duncaen
xbps-checkvers(1): 使用 --installed 参数时同时列出子包 (subpackages)。chocimier
xbps-remove(1): 修复干跑模式下清理缓存的不一致性。duncaen
xbps-remove(1): 允许通过指定两次 -O/--clean-cache 标志从包缓存中移除“已卸载”的包(缓存中仍然是最新的但不再安装的包)。#530 duncaen
xbps-query(1): --cat 现在可在仓库 (repo) 或 pkgdb 模式下工作。duncaen
xbps-query(1): --list-repos/-L 列出所有仓库,包括无法打开的仓库。chocimier
xbps.d(5): 更精确地描述 ignorepkg。chocimier
libxbps, xbps-install(1), xbps-remove(1), xbps-reconfigure(1), xbps-alternatives(1): 添加 XBPS_SYSLOG 环境变量以覆盖 syslog 配置选项。duncaen
libxbps: 将暂存数据合并到仓库索引 (repodata) 文件中。这允许从远程仓库下载暂存索引,而无需保持两个索引文件同步。#575 duncaen
xbps-install(1), xbps-query(1), xbps-checkvers(1), xbps.d(5): 添加了 --staging 标志、XBPS_STAGING 环境变量和 staging=true|false 配置选项。启用暂存允许 xbps 使用来自远程仓库的暂存包。duncaen
xbps-install(1), xbps-remove(1): 在应用事务之前,在事务摘要下方打印一次软件包安装和删除消息。#572 chocimier
xbps-query(1): 改进的参数解析允许在参数的任何位置输入软件包参数。#588 classabbyamp
xbps-install(1): 使干跑 (dry-run) 输出保持一致并支持机器解析。#611 classabbyamp
libxbps: 在路径中不进行波浪号 (~) 字符的 URL 转义,以获得与某些服务器更好的兼容性。#607 gmbeard
libxbps: 对软件包使用正确的 ASN1 签名类型。签名现在具有 .sig2 扩展名。#565 classabbyamp
xbps-uhelper(1): 如果指定了 -v/--verbose 标志,为 pkgmatch 和 cmpver 子命令添加详细输出。#549 classabbyamp
xbps-uhelper(1): 支持许多子命令的多个参数,以提高流水线性能。#536 classabbyamp
xbps-alternatives(1): 为 -l/--list 添加 -R/--repository 模式,以显示仓库中软件包的替代方案。#340 duncaen
libxbps: 修复获取包和仓库时的永久 (308) 重定向问题。duncaen
xbps-remove(1): 忽略其删除文件时出现的文件未找到错误。duncaen
libxbps: preserve 软件包元数据现在在删除软件包时也受到尊重。duncaen
xbps-pkgdb(1): 新的 --checks 参数允许选择运行哪些检查。#352 ericonr, duncaen
完整变更日志 (Full Changelog): https://github.com/void-linux/xbps/compare/0.59.2...0.60