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/10/15 21:17:35 阅读更多 →
QQ空间备份完整指南:用 GetQzonehistory 一键导出全部历史说说和图片到Excel

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

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

2026/11/8 12:10: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/10/15 21:17:39 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻