[life feelings] deepin 有 ostree远程仓库 吗
Tofloor
poster avatar
芭芭雅嘎
deepin
7 hours ago
Author

昨天,隔壁公众号介绍了其不可变系统远程仓库,部分内容节选如下:

不可变系统的更新方式不是打补丁,而是整体换系统,那就必须有一个地方能随时拉到完整的系统镜像——这就是远程仓库存在的意义。

传统 Linux 更新,执行“apt upgrade”命令,系统从服务器拉一堆软件包,一个一个往现有文件系统上堆。灵活是灵活,但有个难以避免的问题: 网络一抖、依赖一冲突,系统就容易卡在"半新半旧"的尴尬状态。不少 Linux 用户对“升级”这两个字有心理阴影,根源就在这。

而不可变系统换了个思路:仓库里不再放零散的包,而是放整张系统快照。具体生成一个仓库版本,分三步:

  • 在管理平台装出一整套系统。把某个openKylin版本需要的所有deb包装齐,跑完整兼容性和性能测试,产出一个稳定可用的完整版本;
  • 用OSTree生成一个Commit。注意,这里产出的不是ISO,而是一个相对轻量的Commit。OSTree会基于"上一版有什么"做增量计算,只记新增和变化的部分。每个 Commit拿到一个全球唯一的SHA-256指纹,生成后无法伪造;
  • 推送到远程仓库。用ostree-push把Commit和它引用的所有对象,推送到openKylin 官方远程仓库,正式对外可用。

总结一句话:OSTree像Git管代码一样管整个操作系统的文件树——哈希校验、内容寻址、自动去重。这才是"不可变"能站住脚的底座。

仓库结构层

核心作用

用户体验

摘要文件(summary

以极小体积枚举仓库所有可用Ref及其校验和,供客户端快速预览远程版本

更新前毫秒级完成版本检测,用户不用下载几十GB就知道有没有新版本,省时省流量

分支引用

refs

轻量级指针,始终指向各系列最新Commit,屏蔽复杂哈希值

用户只需记住“openKylin 2.0”这样的分支名,版本选择零门槛,永远获得该系列最新稳定版

对象存储(objects

内容寻址存储,天然去重+完整性自证

每次更新只需拉取增量而非全量,更新包更小、更快;文件被篡改自动失效,安全无忧

仓库配置(config

定义压缩策略(archive-z2),高效压缩所有对象

传输数据更小,用户更新等待时间大幅缩短

事务状态管理(state

临时对象缓存区(tmp

原子化提交+临时暂存+文件锁,确保操作要么全成要么全退

更新要么成功、要么维持原状,用户永远不用担心升一半崩一半;多设备并发更新仓库也不乱


根据我的理解,deepin貌似是 远程仓库拉取deb + 本地ostree仓库 方案,不知是否准确

相比隔壁的方案,都有啥优缺点

deepin有ostree远程仓库吗,或者是否有类似的规划

Reply Favorite View the author
All Replies
avatar
wlly-lzh
deepin
3 hours ago
#1

把要更新的东西打包成一块,然后下载一整个安装包,下载完了直接安装。

我是这么理解的,不知道对不对。

Reply View the author
avatar
快乐地平线
deepin
3 hours ago
#2

过段时间进行更新,不断进化改进优化功能。

Reply View the author
avatar
𰻞𰻝面
deepin
3 hours ago
#3

相当于Windows的在线修复功能么?这也是很不错的。万一不小心系统搞崩溃了,一个命令在线满血复活!

Reply View the author