16.4. 使用静态 deltas 执行更新


您可以使用静态 deltas 来提高 client 存储库更新的速度。如果用于更新的静态 deltas 存在,则会使用它们。如果不存在,则更新仍然会发生,但速度较慢。

在构建 OSTree 系统后,如果要从客户端系统检索内容,您需要创建一个存储库管理。

默认情况下,您用于 生产环境 的存储库需要每个客户端请求一个 HTTP fetch 事务。如果每周只执行一次发布,请使用 "static deltas" 来更快地获得客户端存储库更新。

先决条件

  • 您有一个使用 Podman 运行的 RHEL repo
  • 您已创建了一个集中 OSTree 镜像,来用作生产存储库。

步骤

  1. repo 存储库中的内容更新拉取到 repo-prod 存储库:

    # ostree --repo=/usr/share/nginx/html/repo pull-local repo-prod
    注意

    如果没有指定 refs 分支,ostree-pull-local 命令会检索所有分支。作为 ostree-pull-local 命令的替代品,您也可以使用 ostree-pull 命令。不同之处在于 ostree-pull-local 仅针对同一系统上存储库之间的副本进行了优化,而 ostree-pull 可以从远程存储库下载数据。

  2. 针对之前的提交应用 delta 更新。静态生成发生在本地存储库上,本例中为 prod。生成 delta 更新后,更新将离线完成。

    注意

    您必须在要生成静态 deltas 的存储库中有至少两个提交。

    # ostree --repo=/usr/share/nginx/html/client-server static-delta generate exampleos/x86_64/standard
    • 可选:如果要从之前的两个提交升级,请运行以下命令:

      # ostree --repo=repo-prod static-delta generate --from=exampleos/x86_64/standard^^ --to=exampleos/x86_64/standard
      重要

      对于您的系统来说,在所有之前的版本中生成完整的 deltas 排列可能是一个繁重的工作负载。OSTree 核对引用父级的静态 deltas 有一些支持。

  3. 更新摘要文件:

    # ostree --repo=repo-prod summary -u

    您需要更新摘要文件,即使您选择生成静态 deltas。summary 命令无法同时运行。它必须由其他作业顺序触发。也就是说,您必须在生成 static-deltas 后生成一个摘要文件,因为上一命令添加了一个新的静态 delta。

  4. 使用生成的静态 delta 应用到现有的操作系统,并执行更新:

    # ostree --repo=/ostree/repo-prod static-delta <delta-update-file-path>
  5. 应用 OSTree delta 更新:

    $ sudo rpm-ostree upgrade
  6. 重启到新镜像以应用更新:

    $ systemctl reboot
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部