ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Armbian 发行版状态体系解析:从 `config/distributions` 看懂 Debian/Ubuntu 上游支持分级与升级路径

Armbian 发行版状态体系解析:从 `config/distributions` 看懂 Debian/Ubuntu 上游支持分级与升级路径 嵌入式构建工具操作系统【免费下载链接】buildThe official build framework for the Armbian Linux distribution. This repository contains the complete toolchain and scripts required to compile custom OS images from source, including kernel configuration, U-Boot handling, and board-specific tweaks for various ARM and ARM64 single-board computers.项目地址https://gitcode.com/GitHub_Trending/bu/build点击查看免费下载导读在 Armbian 官方构建框架中config/distributions目录承载着一套上游发行版状态声明体系它用一个简单的support标记将 Debian 与 Ubuntu 的各个版本划分为supported当前软件包基线、csc不稳定/进行中/旧稳定与eos生命周期结束三档并配套声明每个发行版可用的架构、菜单排序与官方升级路径。本文以 config/distributions/README.md 为骨架结合本仓库源码完整讲解这套状态体系的定义、目录结构、每个字段的取值与含义以及构建脚本如何消费这些元数据来决定能否构建、向谁开放、如何升级。读完本文你将能准确读懂任何 Armbian 发行版配置目录并理解RELEASE、EXPERT、ARCH等构建变量与这套体系的联动关系。一、上游发行版状态Upstream distributions statusREADME.md 全文仅一张表格却是整个 Armbian 构建系统对上游发行版支持策略的权威定义。它说明本目录定义的是受支持的 Debian 和 Ubuntu 上游发行版 / 软件包基线Supported Debian and Ubuntu upstream distributions / packages base并给出三种状态标记support 取值含义supported当前软件包基线current package basecsc不稳定、进行中、旧稳定unstable, work in progress, old-stableeos前稳定版已停止支持former stable, end of life1.1supported当前软件包基线supported是最高级别状态表示该发行版作为 Armbian 当前构建与发布的正式软件包基线。查看本仓库配置当前处于该状态的上游发行版有Debian 13 Trixieconfig/distributions/trixie/Ubuntu noble 24.04config/distributions/noble/Ubuntu resolute 26.04config/distributions/resolute/1.2csc不稳定 / 进行中 / 旧稳定csc是旧稳定 过渡期 未来版本的混合档位用于标记仍在使用但已不是首选基线的版本以及尚未转正的新版本。本仓库中的csc成员包括Debian 12 Bookwormconfig/distributions/bookworm/Debian 14 Forkyconfig/distributions/forky/Debian 13 Sidconfig/distributions/sid/Ubuntu jammy 22.04 LTSconfig/distributions/jammy/1.3eos已停止支持eos表示该发行版已生命周期结束end of lifeArminan 不再提供常规发布支持但配置目录仍予以保留用于历史溯源或专家用户构建。本仓库中的eos成员包括Debian 11 Bullseyeconfig/distributions/bullseye/Debian 10 Busterconfig/distributions/buster/Ubuntu Focal 20.04 LTSconfig/distributions/focal/Ubuntu oracular 24.10config/distributions/oracular/Ubuntu plucky 25.04config/distributions/plucky/Ubuntu questing 25.10config/distributions/questing/从源码结构看eos目录被完整保留含name、order、architectures、upgrade等元数据文件说明这套体系的设计意图是状态可查询、历史可追溯而非物理删除。二、目录结构每个发行版一个目录五个元数据文件config/distributions/下每个上游发行版对应一个目录目录名即发行版代号codename如bookworm/、noble/。每个目录内固定包含五个纯文本元数据文件文件作用name发行版完整名称如Debian 12 Bookwormorder交互菜单中的显示顺序数字越小越靠前support状态标记supported/csc/eosarchitectures该发行版支持的 CPU 架构列表逗号分隔upgrade官方推荐的升级目标发行版列表逗号分隔以 config/distributions/trixie/ 为例nameDebian 13 Trixieorder7supportsupportedarchitecturesarm64,armhf,riscv64,amd64upgradeforky,testing2.1 完整状态一览本仓库当前内容下表汇总本仓库config/distributions/下全部 13 个发行版目录的实际配置可直接作为查询手册使用目录名称ordersupportarchitecturesupgradebusterDebian 10 Buster1eosarm64,armhf,amd64bullseye,bookworm,trixie,testingfocalUbuntu Focal 20.04 LTS2eosarm64,armhf,amd64jammy,noble,oracular,pluckybullseyeDebian 11 Bullseye3eosarm64,armhf,amd64bookworm,trixie,testingbookwormDebian 12 Bookworm4cscarm64,armhf,amd64trixie,testingjammyUbuntu jammy 22.04 LTS5cscarm64,armhf,riscv64,amd64noble,oracular,pluckynobleUbuntu noble 24.046supportedarm64,armhf,riscv64,amd64oracular,pluckytrixieDebian 13 Trixie7supportedarm64,armhf,riscv64,amd64forky,testingoracularUbuntu oracular 24.108eosarm64,armhf,riscv64,amd64pluckypluckyUbuntu plucky 25.049eosarm64,armhf,riscv64,amd64noneforkyDebian 14 Forky10cscarm64,armhf,riscv64,amd64testingquestingUbuntu questing 25.1011eosarm64,armhf,riscv64,amd64noneresoluteUbuntu resolute 26.0412supportedarm64,armhf,riscv64,amd64nonesidDebian 13 Sid13cscarm64,armhf,riscv64,amd64,loong64none可以观察到的规律架构覆盖随版本演进Debian 10–12 与 Ubuntu 20.04 仅覆盖arm64,armhf,amd64从 Ubuntu 22.04jammy与 Debian 14forky起增加riscv64Debian Sid 更进一步覆盖loong64龙芯。这反映了 Armbian 对 RISC-V、LoongArch 等新兴架构的持续引入。升级路径指向更新、更主流的版本upgrade中testing出现频率很高说明 Debian 系的官方升级目标常包含 Debian testing 流而 Ubuntu 系的upgrade则在其 LTS/非 LTS 系列内逐步前进focal → jammy → noble → oracular → plucky。最新的前沿版本状态为 eos/csc 并存例如 Ubuntu 25.10 questing 已标记eos且upgrade为none说明它是上一周期遗留的非 LTS 版本而 Debian Sid永续开发版始终是csc。三、构建脚本如何消费这套元数据源码级印证README 只定义状态真正让状态生效的是本仓库lib/下的一组构建函数。理解这些调用链就能回答这套状态体系到底管什么。3.1set_distribution_status()状态决定能否构建config-prepare.sh 中的set_distribution_status()直接读取config/distributions/${RELEASE}/support文件local distro_support_desc_filepath${SRC}/config/distributions/${RELEASE}/support if [[ ! -f ${distro_support_desc_filepath} ]]; then exit_with_error Distribution dir ${distro_support_desc_filepath} does not exist else DISTRIBUTION_STATUS$(cat ${distro_support_desc_filepath}) fi [[ ${DISTRIBUTION_STATUS} ! supported ]] [[ ${EXPERT} ! yes ]] \ exit_with_error Armbian ${RELEASE} is unsupported and, therefore, only available to experts (EXPERTyes)这段代码揭示了两条关键规则只有supported状态对普通用户开放csc/eos发行版仅对专家开放必须显式设置EXPERTyes才能继续构建否则直接exit_with_error中止。如果RELEASE目录不存在例如拼写错误或上游新增但仓库未收录同样会立即报错退出。3.2check_config_userspace_release_and_desktop()架构白名单校验config-prepare.sh 中的校验逻辑会读取architectures文件检查当前构建架构是否在该发行版的白名单内declare release_distro_dir${SRC}/config/distributions/${RELEASE} declare release_distro_arches_file${release_distro_dir}/architectures if [[ ! -d ${release_distro_dir} ]]; then exit_with_target_not_supported_error RELEASE ${RELEASE} is not supported; ... fi if grep -q ${ARCH} ${release_distro_arches_file}; then display_alert RELEASE ${RELEASE} supports ARCH ${ARCH} ... debug else exit_with_target_not_supported_error RELEASE ${RELEASE} does not support ARCH ${ARCH}; ... fi这意味着architectures文件既是能力声明也是构建约束例如想用bookworm仅 arm64/armhf/amd64构建riscv64镜像会被直接拒绝而sid含 loong64则允许龙芯架构。3.3distros_options()order 决定交互菜单排序menu.sh 的distros_options()遍历config/distributions/下的每个目录为交互式配置界面生成发行版选择项function distros_options() { for distrib_dir in config/distributions/*; do distro_menu ${distrib_dir} done }其中distro_menu同文件上方读取name文件作为菜单显示名并在EXPERTyes时附加支持级别信息(supported/csc/eos)。结合 armbian-bsp-cli-deb.sh 中对order文件的读取逻辑mapfile -t releases (for relorder in ${SRC}/config/distributions/*/order; do echo ${relorder} $(xargs echo ${relorder}); done | sort -nk2 | sed s/\/order.*//g)可以看出order数值被sort -nk2数值排序直接决定发行版在菜单/列表中的先后顺序buster1 最靠前sid13 最靠后。3.4 eos 在根文件系统构建中的特殊处理distro-specific.sh 在根文件系统构建阶段会检查support是否为eos对已停止支持的发行版走旧发行版兼容路径lets keep old way for old distributions例如保留旧式软件包管理/初始化方式。这说明eos不仅影响发布状态还会实质性地改变构建期的处理分支。四、实操如何利用这套体系查询与构建4.1 快速查询某个发行版的状态直接查看对应目录的support文件即可例如cat config/distributions/noble/support # supported cat config/distributions/bookworm/support # csc cat config/distributions/focal/support # eos4.2 查看架构支持与官方升级路径cat config/distributions/trixie/architectures # arm64,armhf,riscv64,amd64 cat config/distributions/bullseye/upgrade # bookworm,trixie,testingupgrade文件中的testing表示该发行版后续可升级到 Debian testing 分支none表示暂无官方升级目标如 plucky、questing、resolute、sid。4.3 构建时的 RELEASE / EXPERT 联动在实际调用./compile.sh构建时RELEASE环境变量会被映射到config/distributions/${RELEASE}/目录选择supported发行版如RELEASEtrixie、RELEASEnoble、RELEASEresolute普通用户可直接构建选择csc/eos发行版如RELEASEbookworm、RELEASEfocal必须额外指定EXPERTyes否则构建在配置阶段即被set_distribution_status()拦截ARCH必须出现在该目录architectures白名单中否则被check_config_userspace_release_and_desktop()拒绝。# 示例专家模式下构建 Debian 12 Bookworm 的 arm64 镜像 EXPERTyes RELEASEbookworm ARCHarm64 ./compile.sh五、小结一套元数据三重作用config/distributions/用五个纯文本文件 一个三档状态标记实现了三重作用发布策略声明support文件将上游版本划分为supported/csc/eos直接决定镜像发布的软件包基线范围构建约束校验architectures、目录存在性等元数据被 config-prepare.sh 等脚本在配置阶段消费形成不支持即中止的强校验交互与升级指引name与order驱动交互菜单展示upgrade为下游用户提供官方的跨版本升级路径。从本仓库当前状态可以看出 Armbian 的发行版策略正在向 Debian 13 Trixie 与 Ubuntu 24.04/26.04 系列倾斜同时通过csc档位保留 Bookworm、Jammy 等旧稳定版通过eos档位完整保留 Focal、Bullseye 等历史版本以供专家场景与回溯使用。理解这套状态体系是深入使用 Armbian 构建框架、判断某个上游版本可用性与升级方向的第一步。赞分享嵌入式构建工具操作系统【免费下载链接】buildThe official build framework for the Armbian Linux distribution. This repository contains the complete toolchain and scripts required to compile custom OS images from source, including kernel configuration, U-Boot handling, and board-specific tweaks for various ARM and ARM64 single-board computers.项目地址https://gitcode.com/GitHub_Trending/bu/build点击查看免费下载相关推荐ZenML 版本演进全景解读从 RELEASE_NOTES 看懂 0.3.4 → 0.96.0 的破坏性变更与升级路径ZenML 版本演进全景解读从 RELEASE_NOTES 看懂 0.3.4 → 0.96.0 的破坏性变更与升级路径 在升级 ZenML 客户端或服务端、排MLOps机器学习后端工作流自动化AI AgentProcMon-for-Linux安装指南支持Ubuntu、Debian、Fedora等主流发行版ProcMon for Linux安装指南支持Ubuntu、Debian、Fedora等主流发行版 想要在Linux系统上监控系统调用活动吗ProcMon开发工具运维观测系统底层Gatsby 框架版本支持策略解析从发布节奏到升级路径gatsby-version-support 指南Gatsby 框架版本支持策略解析从发布节奏到升级路径gatsby version support 指南 导读 本指南以 Gatsby 官方仓库中的版本支前端静态站点Web框架上一篇Velero 定时备份Schedule详解从 ark schedule describe 到源码级解析下一篇在 AWS 上部署 ArkVelero 前身备份 KubernetesS3 存储桶、IAM 权限与云凭证配置完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表