跳到主要内容

支持的宿主平台

本文档描述 kmpkg 支持的架构和操作系统。

依赖项

kmpkg 运行前需要系统已安装以下几个组件:

  • Windows:Visual Studio 2015 或更高版本。
  • macOS:Xcode 命令行工具、tar、git、zip、unzip 和 curl。大多数端口还需要 pkg-config。 建议通过 Homebrew 安装这些依赖项,例如在终端中执行命令: brew install zip unzip curl pkgconfig
  • Linux:需安装 C++ 编译器、tar、git、zip、unzip 和 curl。大多数端口还需要 pkg-config。 建议通过系统包管理器安装这些依赖项:
    • 基于 apt 的系统:apt install git curl zip unzip pkgconfig
    • 基于 rpm 的系统:dnf install git curl zip unzip pkgconfig
    • 基于 pacman 的系统:base-devel git curl zip unzip tar cmake ninja

对于 Linux 和 macOS 用户,还建议安装以下包:autoconfautoconf-archiveautomakemakelibtool。这些包虽非必需,但 kmpkg 中的许多库经常会用到。

官方维护注册表的支持级别

支持级别分为 4 类:

  • 完全支持(已测试)
    官方维护的注册表会定期在这些配置上进行测试。维护者和社区会快速发现并修复这些配置中的问题。
  • 完全支持(预期)
    与“完全支持(已测试)”享有同等优先级,但未纳入常规测试。 通常,这些配置与某个完全测试的配置高度相似。
  • 社区支持
    维护者不主动支持这些配置,但有大量社区贡献。 维护者会接受修复这些平台问题的变更,但不保证配置一定可用。 kmpkg 团队希望尽可能多的平台从社区支持升级到完全支持。
  • 不支持
    已知因某些原因无法工作的配置。通常,仅针对这些平台的拉取请求不会被接受。

完全支持(已测试)

完全支持且经过测试的平台如下:

Windows

  • 最新的 Windows / Windows Server 版本(本文撰写时为 Windows 11 和 Windows Server 2025)。
  • 最新的 Visual Studio 更新(本文撰写时为 Visual Studio 2022 17.14 版本)。

macOS(arm64 /「Apple Silicon(苹果芯片)」)

macOS 旨在支持最新版本的 macOS 和同期的 Xcode 命令行工具。但 macOS 机器的更新需手动操作,且其频繁变更可能导致 kmpkg 测试失败。本文撰写时,使用的配置如下:

  • macOS 15.6.1
  • XCode 命令行工具 16.4

Linux

  • Ubuntu 最新 LTS 版本(当前为 24.04)。

Android

  • 64 位 Linux 环境下的 Android NDK r28c 版本。

完全支持(预期)

Windows

  • Windows 10 / Windows Server 2019 及更高版本。
  • Visual Studio 2017 及更高版本。

macOS

  • 最新 macOS 版本回溯两个主要版本(例如,当前 macOS 版本为 macOS 26 Tahoe(塔霍),则预期支持至 macOS 14 Sonoma(索诺玛))。这一策略与苹果官方的 macOS 支持周期保持一致。
  • 对应 macOS 版本的同期 Xcode 命令行工具。
  • macOS x64 架构。

Linux

我们计划支持发行商仍在维护、且发布时间不超过 5 年的 glibc 系 Linux AMD64 构建版本。示例如下:

  • Ubuntu 24.04 和 22.04 仍在 Canonical 的支持周期内,且发布时间不超过 5 年,因此预期可用;Ubuntu 20.04 虽仍享受 Canonical 的 ESM 支持,但发布时间已超过 5 年,不再视为完全支持;Ubuntu 23.10 虽比 22.04 更新,但已不在 Canonical 的支持周期内,因此不视为完全支持。
  • Red Hat Enterprise Linux 9 完全支持。
  • CentOS 和 Red Hat Enterprise Linux 8 已于 2024 年 5 月 31 日结束 Red Hat 的官方支持,且发布时间超过 5 年,因此不再支持。
  • CentOS 和 RHEL 7 已结束 Red Hat 的官方支持,发布时间超过 5 年,预期不可用;Oracle 维护的 Oracle Linux 分支虽仍在 Oracle 的支持周期内,但发布时间超过 5 年,预期也不可用。
  • Fedora 42 和 41 完全支持,Fedora 40 已结束官方支持。
  • Debian 13 "Trixie"(特里克西)、12 "Bookworm"(书虫)和 11 "Bullseye"(牛眼)均在 Debian 的支持周期内,且发布时间不超过 5 年;Debian 10 "Buster"(巴斯特)已于 2024 年 7 月结束 Debian 项目的支持,因此 kmpkg 不再支持。

我们假设用户的构建系统与所使用的 Linux 版本匹配,并确保清单模式 CMake 集成等组件能与上述发行版自带的依赖版本兼容。本文撰写时,这些依赖版本及对应的发行版如下:

  • GCC 10.2.1(Debian 11)
  • CMake 3.18.4(Debian 11)
  • Ninja 1.10.0(所有发行版)
  • Curl 7.74.0(Debian 11)
  • zip 3.0(所有发行版)
  • unzip 6.0(所有发行版)

社区支持

Windows

  • Windows 7 / Windows Server 2008 R2 及更高版本。

kmpkg.exe 本身应能在 Windows 7 系列系统上运行,但官方维护的注册表中绝大多数端口需要 MSYS2 组件(如 pkg-config),而这些组件 不再支持 Windows 8.1 以下的版本

  • 使用 MinGW 或 Clang 作为构建编译器。

目前 kmpkg 存在较多针对 Visual Studio 的假设;特别是,我们的可执行文件 PDB 匹配复制功能目前需要依赖 Visual Studio 的组件 dumpbin。不过,有不少社区成员专注于 MinGW 支持,kmpkg 也已内置 MinGW 工具链。

Linux

  • 非 AMD64 架构的 Linux。如果能证明如何提供在所有 arm64 Linux 硬件上都有较高运行成功率的二进制文件,我们非常欢迎针对 arm64 Linux 平台的贡献。
  • 非 glibc 库的 Linux。kmpkg 通常提供的部分工具以二进制形式分发,且依赖 glibc 库。我们提供了经过测试可在 Alpine 上运行的 muslc 版 kmpkg,但无法提供 CMake 等众多依赖的 muslc 版本。

BSD 或其他 POSIX 系统

BSD 目标平台不提供可下载的 kmpkg 二进制文件,引导程序会下载 kmpkg 源代码并在本地编译。

依赖项

kmpkg 需要一些非操作系统自带的软件包,需通过包管理器安装:

  • FreeBSD:pkg install -y bash cmake curl git ninja zip unzip
  • OpenBSD:pkg_add -Iz bash cmake coreutils curl git ninja zip unzip-6.10-iconv

与 Linux 类似,建议额外安装以下包:

  • FreeBSD:pkg install -y autoconf autoconf-archive gmake pkgconf python
  • OpenBSD:pkg_add -Iz autoconf-2.71 autoconf-archive gmake pkgconf python3

注意事项

  • kmpkg 会从 PATH 环境变量中查找 unzip 工具。最终,即使通过包管理器安装了额外的 unzip,kmpkg 也可能执行系统自带的版本。 需配置 PATH 环境变量,让第三方 unzip 优先于系统自带版本,否则 kmpkg 可能无法提取二进制缓存。

不支持

  • 32 位 Windows。针对 x86-windows 或 arm-windows 的目标构建完全可行,但 kmpkg 本身需要运行 AMD64 架构的支持工具(如 CMake)。
  • Visual Studio 2013 或更早版本。
  • Windows Vista 或更早版本。
  • 版本早于上述类别中提及的 macOS 或 Linux 宿主平台。