Fleet 旧版 TUF 仓库状态与 fleetd 组件发布追踪指南:tuf.fleetctl.com 的 stable/edge 通道解析
后端前端企业应用运维网络安全【免费下载链接】fleetOpen device management项目地址https://gitcode.com/GitHub_Trending/fl/fleet点击查看免费下载导读orbit/old-TUF.md记录了 fleetd 组件orbit、desktop、osqueryd、nudge、swiftDialog、escrowBuddy在旧版 TUF 仓库tuf.fleetctl.com上stable与edge两个更新通道的当前部署版本。这篇指南将带你理解该文档的生成机制、表格中每个组件与平台的含义、旧仓库在 Fleet 更新体系中的历史定位以及如何用仓库自带的工具复现并校验这些版本信息。旧版 TUF 仓库在 Fleet 更新体系中的位置Fleet 的端侧组件fleetd 家族通过 TUFThe Update Framework协议实现安全、防篡改的自动更新。仓库中明确区分了两套 TUF 仓库旧版 TUF 仓库https://tuf.fleetctl.com即orbit/old-TUF.md所记录的对象是 fleetd 组件历史上使用的更新源新版 TUF 仓库https://updates.fleetdm.com当前 Fleet 官方使用的更新源其状态记录在同目录的 orbit/TUF.md 中。两个文件都由 Makefile 目标自动生成且文件头部都有DO NOT EDIT声明。区别在于Makefile 目标生成的文档查询的 TUF 地址make fleetd-old-tuforbit/old-TUF.mdhttps://tuf.fleetctl.commake fleetd-tuforbit/TUF.mdhttps://updates.fleetdm.com默认值从 Makefile 中的定义可以看出两个目标都调用同一个工具tools/tuf/status/tuf-status.go的channel-version子命令只是-url参数指向不同的仓库。从旧仓库到新仓库的迁移在源码层面旧仓库的地址被保留为显式的迁移常量。见 orbit/pkg/update/update.go// For users using Fleets TUF: // - orbit 1.38.0 we migrate TUF from https://tuf.fleetctl.com to https://updates.fleetdm.com. // - orbit 1.38.0 will start using updates-metadata.json instead of tuf-metadata.json. If it is missing // (which will be the case for the first run after the auto-update) then it will generate it from the new pinned roots. DefaultURL https://updates.fleetdm.com MetadataFileName updates-metadata.json OldFleetTUFURL https://tuf.fleetctl.com OldMetadataFileName tuf-metadata.json这段注释揭示了迁移的两个层面仓库地址迁移orbit 1.38.0 及以上版本会从tuf.fleetctl.com迁移到updates.fleetdm.com本地元数据文件名迁移tuf-metadata.json更名为updates-metadata.json。新版 orbit 启动时若发现新文件名缺失如自动更新后的首次运行会基于新的固定 root 元数据自动生成对于自定义 TUF 用户则执行一次文件复制。为了保证兼容性用 fleetctl 4.63.0 构建的 fleetd 包会同时内置这两个元数据文件内容相同以便支持回退到 orbit 1.37.0 及以下版本。在运行时层面orbit/pkg/update/runner.go 也专门处理了迁移期的边界情况当本地没有 snapshot 元数据时会跳过启动优化并允许 orbit 直接启动即使 TUF 服务器不可用也不阻塞启动——这正是可能发生在从tuf.fleetctl.com到updates.fleetdm.com迁移期间的场景。深入解析stable通道部署矩阵orbit/old-TUF.md的stable通道记录了当前稳定版组件在各操作系统上的部署版本这是运维与故障排查中最常参考的数据Component\OSmacOSLinuxWindowsLinux (arm64)Windows (arm64)orbit1.38.11.38.11.38.11.38.1-desktop1.38.11.38.11.38.11.38.1-osqueryd5.15.05.15.05.15.05.15.0-nudge1.1.10.81462----swiftDialog2.1.0----escrowBuddy1.0.0----组件的平台矩阵语义orbitFleet 的代理管理器负责编排其余组件的更新所有平台均有部署desktopFleet Desktop 菜单栏应用随 orbit 同步发布版本号与 orbit 保持一致osqueryd核心的 osquery 端点代理5.15.0 是当时该仓库中的 osquery 版本nudge、swiftDialog、escrowBuddy仅面向 macOS 的配套工具分别用于强制 macOS 更新提醒、通用对话框 UI、FileVault 密钥托管因此在 Linux/Windows 列显示-。从实现看-表示的该平台无此组件在源码中有双重印证。一方面更新目标的平台定义集中在 orbit/pkg/update/options.go例如 macOS 目标将 osqueryd 定义为macos-app平台并指向osqueryd.app.tar.gz而 Linux arm64 目标使用linux-arm64平台。另一方面orbit/pkg/update/runner.go 在初始化本地文件哈希时会忽略client.ErrNotFound——如果远端通道对某个目标不存在我们不会报错而是跳过该目标这正是 macOS 专属组件在非 macOS 平台静默缺席的机制。关键细节macos-app与macos的等价关系在 TUF 仓库内部osqueryd 的 macOS 目标平台名实际是macos-app因为 macOS 的 osqueryd 以.app包形式分发但在状态工具输出时会归一化为macos。见 tools/tuf/status/tuf-status.goif os macos-app { os macos // this is an implementation detail in TUF. }因此在old-TUF.md的表格中你只会看到macOS这一列而不会看到内部平台名。深入解析edge通道部署矩阵edge通道用于提前验证即将发布的版本orbit/old-TUF.md中的记录为Component\OSmacOSLinuxWindowsLinux (arm64)Windows (arm64)orbit1.38.11.38.11.38.11.38.1-desktop1.38.11.38.11.38.11.38.1-osqueryd5.15.05.15.05.15.05.15.0-nudge-----swiftDialog-----escrowBuddy-----edge 通道的可观测规律对比两份矩阵可以看出该时间点的两个事实orbit / desktop / osqueryd在 edge 与 stable 上版本一致均为 1.38.1 / 1.38.1 / 5.15.0说明当时这两个通道尚未分叉发布macOS 专属组件nudge、swiftDialog、escrowBuddy在 edge 通道完全为空-表明这些 macOS 辅助工具当时只通过stable通道发布。而同期的新版仓库 orbit/TUF.md 则展示了 edge 领先于 stable 的典型形态orbit/desktop 在 edge 为 1.61.0、stable 为 1.60.0swiftDialog 在 edge 为 2.5.6、stable 为 2.1.0——由此可以推断edge 通道的本质是先行验证通道发布节奏上可以领先、持平或针对特定组件完全不发布。复现与校验用 tuf-status 工具查询通道版本orbit/old-TUF.md本身是自动生成的因此任何读者都可以用仓库自带的 tools/tuf/status/tuf-status.go 复现同样格式的输出。命令用法channel-version子命令支持四个 flag全部可用环境变量覆盖见 tools/tuf/status/tuf-status.goFlag环境变量默认值说明-urlURLhttps://updates.fleetdm.com要查询的 TUF 仓库地址-channelTUF_STATUS_CHANNELstable通道名称stable/edge-componentsTUF_STATUS_COMPONENTSorbit, desktop, osqueryd, nudge, swiftDialog, escrowBuddy要查询的组件列表逗号分隔-formatTUF_STATUS_FORMATjson输出格式支持json和markdown复现 old-TUF.md 的等价命令查询旧仓库stable通道的 markdown 表格go run tools/tuf/status/tuf-status.go channel-version \ -url https://tuf.fleetctl.com \ -channel stable \ -format markdown查询旧仓库edge通道的 JSON 输出go run tools/tuf/status/tuf-status.go channel-version \ -url https://tuf.fleetctl.com \ -channel edge \ -format json指定组件子集例如只关心 orbit 与 osquerydgo run tools/tuf/status/tuf-status.go channel-version \ -url https://tuf.fleetctl.com \ -channel stable \ -components orbit,osqueryd \ -format json参考用法可查看 tools/tuf/status/README.md。版本选择的实现逻辑工具在输出前会对同一 sha512 对应的多个版本号进行去重并选取点分号段数最多的版本作为展示值见 tools/tuf/status/tuf-status.go这确保了类似1.1.10.81462nudge 的四段版本号这类特殊版本不会被更短的三段版本号错误覆盖。组件更新目标的底层机制Targets 与通道要真正读懂版本矩阵还需理解 orbit 如何将组件 平台 通道映射为具体的更新目标。以 macOS 为例orbit/pkg/update/options.go 定义了默认目标DarwinTargets Targets{ constant.OrbitTUFTargetName: TargetInfo{ Platform: macos, Channel: stable, TargetFile: orbit, }, constant.OsqueryTUFTargetName: TargetInfo{ Platform: macos-app, Channel: stable, TargetFile: osqueryd.app.tar.gz, ExtractedExecSubPath: []string{osquery.app, Contents, MacOS, osqueryd}, }, }结合测试用例中出现的仓库路径模式见 orbit/pkg/update/testing_utils_test.go 与 orbit/pkg/update/update_test.go可以推断出 TUF 仓库内目标的路径规律组件/平台/通道/目标文件名例如osqueryd/macos/stable/osqueryd.app.tar.gznudge/macos/stable/nudge.app.tar.gzescrowBuddy/macos/stable/escrowBuddy.pkgroot/bin/target/windows/stable/fleet-desktop.exeroot/bin/target/linux/stable/desktop.tar.gz这也解释了表格中版本号与平台一一对应的根源每个(组件, 平台, 通道)组合都对应仓库中的一个独立目标条目-则代表该目标在当前通道不存在。通道的动态切换能力Targets结构体提供了SetTargetChannel方法见 orbit/pkg/update/update.go允许在运行时将某个目标的通道从默认的stable切换到edge。这意味着 edge 通道不仅是文档中的一个表格更是 orbit 实际可以从tuf.fleetctl.com拉取验证版组件的方式常见于预发布测试与灰度验证场景。阅读建议与注意事项该文档是快照而非事实标准orbit/old-TUF.md是某个时间点的部署快照更新需通过make fleetd-old-tuf重新生成。由于旧仓库已处于迁移收尾阶段其内容趋于静态当前活跃的版本信息应以 orbit/TUF.mdupdates.fleetdm.com为准。用工具而非手工核对任何时刻都可以直接运行go run tools/tuf/status/tuf-status.go channel-version获取实时数据避免依赖过期的文档快照。关注迁移兼容性如果你的环境仍在使用旧版 orbit1.37.0 及以下其更新的元数据文件名与仓库地址均为旧方案升级到 1.38.0 时orbit/pkg/update/update.go 中定义的OldFleetTUFURL/OldMetadataFileName与DefaultURL/MetadataFileName两套常量就是迁移逻辑的边界所在。赞分享后端前端企业应用运维网络安全【免费下载链接】fleetOpen device management项目地址https://gitcode.com/GitHub_Trending/fl/fleet点击查看免费下载相关推荐Fleet 中 fleetd 自动更新机制详解基于 TUF 的离线签名、渠道发布与 fleetctl updates 全操作指南Fleet 中 fleetd 自动更新机制详解基于 TUF 的离线签名、渠道发布与 fleetctl updates 全操作指南 fleetd 是 Fleet后端前端企业应用运维网络安全在 Fleet 中运行本地构建的 fleetd基于本地 TUF 仓库的 macOS 开发调试完整指南在 Fleet 中运行本地构建的 fleetd基于本地 TUF 仓库的 macOS 开发调试完整指南 本文面向 Fleet 开源项目的 macOS 贡献者完后端前端企业应用运维网络安全Fleetd 开发与发布策略Fleet 开源项目如何通过 TUF 自动更新保障前后兼容Fleetd 开发与发布策略Fleet 开源项目如何通过 TUF 自动更新保障前后兼容 本文基于 Fleet 仓库中的 fleetd 开发与发布策略 http后端前端企业应用运维网络安全上一篇Ray 容错机制详解分类、机制与编写容错 Ray 应用的最佳实践下一篇如何在喧嚣的数字音乐时代打造纯净聆听体验铜钟音乐开源项目完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Harvey LAB架构揭秘:三阶段评估管线深度解析与新手入门指南

Harvey LAB架构揭秘:三阶段评估管线深度解析与新手入门指南

Harvey LAB架构揭秘:三阶段评估管线深度解析与新手入门指南 【免费下载链接】harvey-labs A benchmark built to evaluate and improve agent capabilities for supporting legal work. 项目地址: https://gitcode.com/GitHub_Trending/ha/harvey-labs Harvey LAB&#…

2026/9/20 14:04:41 阅读更多 →
QQ空间备份完整指南:用 GetQzonehistory 一键导出全部历史说说和图片到Excel

QQ空间备份完整指南:用 GetQzonehistory 一键导出全部历史说说和图片到Excel

QQ空间备份完整指南:用 GetQzonehistory 一键导出全部历史说说和图片到Excel 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 打开手机刷QQ空间,2016 年的说说早已…

2026/9/21 14:34:57 阅读更多 →
catlass_cppgen 完整指南:3 步生成 CATLASS 高性能算子代码

catlass_cppgen 完整指南:3 步生成 CATLASS 高性能算子代码

catlass_cppgen 完整指南:3 步生成 CATLASS 高性能算子代码 【免费下载链接】Yi A series of large language models trained from scratch by developers 01-ai 项目地址: https://gitcode.com/GitHub_Trending/yi/Yi 手写一个高性能 GEMM 核函数&#xff0…

2026/9/20 14:03:40 阅读更多 →

最新新闻

Open Design 中的 Webflow 设计系统:从品牌令牌到 Agent 落地的完整实现指南

Open Design 中的 Webflow 设计系统:从品牌令牌到 Agent 落地的完整实现指南

AI 应用人工智能AI 技能设计系统媒体生成 【免费下载链接】open-design 🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design e…

2026/9/21 16:42:42 阅读更多 →
Zephyr 在 Radxa ROCK 5B+(RK3588)上的移植与启动实战指南

Zephyr 在 Radxa ROCK 5B+(RK3588)上的移植与启动实战指南

Zephyr 在 Radxa ROCK 5B(RK3588)上的移植与启动实战指南 【免费下载链接】zephyr Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures. 项目地址: …

2026/9/21 16:42:42 阅读更多 →
Pandas进行MySQL数据库CRUD

Pandas进行MySQL数据库CRUD

在数据分析和处理的过程中,MySQL是一种常见的关系型数据库管理系统,而Pandas则是Python中处理数据的强大工具。通过Pandas与MySQL的结合,能够更高效地进行数据的增删改查(CRUD)操作,并为后续的数据分析打下基础。这篇教程旨在介绍如何使用Pandas来连接MySQL数据库并执行基…

2026/9/21 16:42:42 阅读更多 →
使用skimage进行图片读取与存储

使用skimage进行图片读取与存储

在图像处理和计算机视觉领域,Python提供了许多强大的库来帮助程序员进行图片的读取与处理工作。其中,skimage(Scikit-Image)是一个开源的图像处理库,专为科学研究设计。它的功能涵盖了基础的图像处理任务,如图片的读取、过滤、转换、几何变换、颜色处理等,且与NumPy紧密…

2026/9/21 16:42:42 阅读更多 →
使用OpenCV进行图片读取与存储

使用OpenCV进行图片读取与存储

在图像处理和计算机视觉的领域中,OpenCV(Open Source Computer Vision Library)是一个非常流行的开源库。它提供了强大的工具,用于对图像进行处理、分析和操作。无论是简单的图片读取与保存,还是复杂的图像处理算法,OpenCV都能提供丰富的支持。在机器学习和人工智能等多个…

2026/9/21 16:42:42 阅读更多 →
在 dva 应用中集成 redux-undo:基于 onReducer 增强器的撤销/重做实战

在 dva 应用中集成 redux-undo:基于 onReducer 增强器的撤销/重做实战

在 dva 应用中集成 redux-undo:基于 onReducer 增强器的撤销/重做实战 【免费下载链接】dva 🌱 React and redux based, lightweight and elm-style framework. (Inspired by elm and choo) 项目地址: https://gitcode.com/gh_mirrors/dv/dva 导读…

2026/9/21 16:41:42 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →