linux常用命令 ostree 命令 管理多个可引导版本化文件系统树

ostree中文手册

ostree

名称
ostree — 管理多个可引导版本化文件系统树

概述
ostree [OPTION…] COMMAND

描述
OSTree 是一个用于管理多个可启动对象的工具版本控制系统树,或简称为“树” 。在OSTree模型中,操作系统不再存活于物理“/”根目录中。 相反,它们并行安装到新的顶级目录 /ostree 。每个已安装的系统将获得自己的 /ostree/deploy/stateroot 目录。(stateroot 是 osname较新的术语 )。

与 apt 和 dpkg 不同,OSTree 只知道完整的文件系统树。它没有内置了解什么组件创建文件系统树。

可以在多种模式下使用 OSTree :最基本的形式是复制预构建的树生成服务器。通常,这些预建树是派生自包。您可能还在使用 OSTree 在更高级别的工具下计算本地文件系统树。

必须强调的是,OSTree 仅支持只读树。要更改为不同的树(升级、降级、安装软件),签出一棵新树,并 3 路执行配置合并。目前运行树永远不会被修改;新树将在系统重新启动时变为活动状态。

要查看命令的手册页,请运行 man ostree COMMAND 或 man ostree-admin COMMAND。

选项
了解以下选项:

  • –repo
    对于大多数命令,存储库是 必填。如果未指定,则当前目录显示为 OSTree 仓库.如果不是,则使用环境变量 OSTREE_REPO ,或系统存储库位于 /sysroot/ostree/repo 目录。

  • -v, --verbose
    生成调试级别输出。

  • –version
    打印版本信息,包括启用的功能 在编译时,然后退出。

命令
系统管理员将主要通过子命令 ostree admin 与 OSTree 进行交互。

  • ostree-admin-cleanup
    删除未标记的内容部署和存储库对象。

  • ostree-admin-config-diff
    查看对 /etc/ 目录比较的更改到当前默认值(从 /usr/etc)。

  • ostree-admin-deploy
    采取特定的提交或修订,并将其设置为下一次启动。

  • ostree-admin-init-fs
    在指定的路径中初始化根文件系统。

  • ostree-admin-instutil
    主要用于操作系统安装程序的实用程序功能。

  • ostree-admin-os-init
    初始化具有指定名称的操作系统的部署位置。

  • ostree-admin-status
    显示并列出部署。

  • ostree-admin-switch
    选择不同的参考追踪相同远程和当前树。

  • ostree-admin-undeploy
    从引导加载程序中删除先前的 INDEX 部署树配置。

  • ostree-admin-upgrade
    为当前引用下载最新版本的,并部署它。

管理员和操作系统构建者可以通过常规文件系统操作命令与 OSTree 进行交互。

  • ostree-cat
    连接文件的内容

  • ostree-checkout
    将提交签出到文件系统树中。

  • ostree-checksum
    提供任何文件的校验和。

  • ostree-commit
    根据给定的一个或多个树,使用这些内容创建一个新提交。

  • ostree-config
    更改设置。

  • ostree-create-usb
    将给定的引用放在外部驱动器上以进行 P2P 分发。

  • ostree-diff
    在给定引用中的简明扼要的差异清单。

  • ostree-find-remotes
    查找远程来为给定的参考提供服务。

  • ostree-fsck
    检查存储库的一致性。

  • ostree-init
    初始化新存储库。

  • ostree-log
    显示修订日志。

  • ostree-ls
    列出给定提交的内容。

  • ostree-prune
    搜索无法访问的对象。

  • ostree-pull-local
    从源存储库复制数据。

  • ostree-pull
    从远程存储库下载数据。如果你有libsoup。

  • ostree-refs
    列出引用。

  • ostree-remote
    操作远程存档配置。

  • ostree-reset
    将引用重置为以前的提交。

  • ostree-rev-parse
    显示与给定版本对应的 SHA256。

  • ostree-show
    给定 OSTree SHA256 校验和,显示其内容。

  • ostree-static-delta
    管理静态增量文件。

  • ostree-summary
    重新生成存储库摘要元数据。

实例
有关具体示例,请参阅有关特定 ostree 命令的手册页。例如:

man ostree initman ostree-admin status

GPG 验证
OSTree 支持使用 GPG 签署提交。系统存储库上的操作默认情况下,使用在目录 /usr/share/ostree/trusted.gpg.d 中的密钥环文件。任何该目录中密钥环文件中的公钥将是受客户信任。私钥文件不应存在此目录中。

除了系统仓库,OSTree还支持两个其他路径。首先,有一个远程选项 gpgkeypath ,它必须指向 ASCII 组装的 GPG 密钥的文件名,或包含ASCII 组装的 GPG 密钥目录,从而导入多个文件和目录路径,可以将要从中导入的内容指定为以逗号分隔的路径列表。此选项 --set 可以通过在 ostree remote add 中使用。

其次,支持存储在存储库顶层的每个远程文件 remotename.trustedkeys.gpg (objects/ 等)。当下载可能无法完全信任的内容时特别有用(例如,您想检查它,但没有将其部署为操作系统),或将其用于容器。此文件通过 ostree remote add --gpg-import 写入。

术语
以下术语在整个手册页中常用。大写字母的术语是命令行参数中使用的文本。

  • BRANCH
    分支名称。REF 的一部分。

  • CHECKSUM
    存储在 OSTree 存储库中的对象的 SHA256 哈希。这可以是一个内容, 一个 dirtree 、一个 dirmeta 或一个提交对象。如果提交对象的 SHA256 哈希有含义,使用术语 COMMIT 。

  • COMMIT
    提交对象的 SHA256 哈希。

  • REF
    对特定提交的引用。引用是存储在 refs/ (引用)的特定提交中的文本文件。一个引用只能是分支名称部分,在这种情况下,本地引用被使用(例如, mybranch/stable )。如果是远程分支被引用,远程名称后跟冒号和分支名称需要使用(例如, myremote:mybranch/stable)。

  • REV, REFSPEC
    一个特定的修订,一个提交。这可以是可以解析为一个提交的任何内容,例如 一个 REF 或 一个 COMMIT。

  • SHA256
    用于在 OSTree 存储库中存储对象的加密哈希函数。哈希的长度为 256 位,通常显示并通过 64 个 ASCII 字符长十六进制表示法(0fc70ed33cfd7d26fe99ae29afb7682ddd0e2157a4898bd8cfcdc8a03565b870)传递给 Ostree 。

参见
ostree.repo(5)

ostree-admin-cleanup

名称
ostree-admin-cleanup — 删除未标记的部署和存储库对象

概述
ostree admin cleanup

描述
OSTree sysroot 清理其他引导版本和旧部署。如果/当拉取或部署中断时,部分写入的状态可能会保留在磁盘上。此命令清除任何此类部分状态。

实例

ostree admin cleanup

ostree-admin-config-diff

名称
ostree-admin-config-diff — 比较当前 /etc 配置与默认值

概述
ostree admin config-diff [OPTIONS…]

描述
打印当前 /etc 目录与 /usr/etc 中默认配置之间的差异。新添加的文件(存在于 /etc 中但不在 /usr/etc 中)将以“A”为前缀。修改后的文件将以“M”为前缀,删除的文件将以“D”为前缀。

选项

  • –os=“STATEROOT”
    使用与当前操作系统状态根不同的操作系统状态根。

实例

$ ostree admin config-diff

        M   shadow
        A   example.txt

ostree-admin-deploy

名称
ostree-admin-deploy — 签出修订版作为新的默认部署

概述
ostree admin deploy [OPTIONS…] {REFSPEC}

描述
采用提交或修订 REFSPEC,并在重新启动时将新部署作为默认值排队。

选项

  • –stateroot=“STATEROOT”
    使用与当前操作系统状态根不同的操作系统状态根。

  • –os=“STATEROOT”
    的别名。–stateroot

  • –origin-file=“文件名”
    使用FILENAME作为原点,OSTree将在其中查找树的更新版本。

  • –retain
    不要删除以前的部署。

  • –retain-pending
    不要删除挂起的部署。

  • –retain-rollback
    不要删除回滚部署。

  • –not-as-default
    追加而不是预置新部署。

  • –karg-proc-cmdline
    导入当前 /proc/cmdline。

  • –karg=“NAME=VALUE”
    设置内核参数,如 root=/dev/sda1;这将覆盖任何具有相同名称的早期参数。

  • –karg-append=“NAME=VALUE”
    附加内核参数;例如,可用于可以多次使用的控制台=。

实例

$ ostree admin status

        * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime
          gnome-ostree ce19c41036cc45e49b0cecf6b157523c2105c4de1ce3.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime
$ ostree admin deploy gnome-ostree/buildmain/x86_64-runtime

        ostadmin: Creating deployment /ostree/deploy/gnome-ostree/deploy/7e382b11d213a402a5313e61cbc69dfd5ab93cb07.1
        ostadmin: Processing /etc: 3 modified, 0 removed, 29 added
        Transaction complete: bootconfig swap: no deployment count change: 0)
$ ostree admin status

          gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.1
            origin refspec: gnome-ostree/buildmain/x86_64-runtime
        * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime

ostree-admin-init-fs

名称
ostree-admin-init-fs — 初始化一个新的根文件系统

概述
ostree admin init-fs [OPTIONS…] {PATH}

描述
在指定的 PATH 中初始化一个空的物理根文件系统,每个目录具有正常的顶级和正确的权限。主要对操作系统安装程序有用。

实例

$ sudo mkdir /example

$ sudo ostree admin init-fs /example

$ ls /example

boot dev home ostree proc root run sys tmp

ostree-admin-instutil

名称
ostree-admin-instutil — 主要用于操作系统安装程序的实用程序函数

概述
ostree admin instutil {SUBCOMMAND} [ARGS]

描述
使用子命令切换 selinux 策略和内核参数的管理员安装实用程序。

子命令
selinux-ensure-labeled [SUBPATH PREFIX]

确保所有文件和目录都根据首次部署的 SELinux 策略进行标记。

set-kargs [–merge] [–import-proc-cmdline] [–append=“NAME=VALUE”] [–replace=“NAME=VALUE”] [MORE_APPEND_ARGS]

替换默认部署的内核参数。新论点基于 在空列表(默认值)、当前选项(–merge)或参数上 加载的内核 (–import-proc-cmdline),并且新选项要么添加到 end (–append=“NAME=VALUE”) 或替换同名的现有参数 (–replace=“NAME=VALUE”)。

ostree-admin-os-init

名称
ostree-admin-os-init — stateroot-init 的软弃用别名

概述
ostree admin os-init {STATEROOT}

描述
这是状态根初始化的软弃用别名。请参阅文档。

ostree-admin-pin

名称
ostree-admin-pin — 在给定索引处显式保留部署

概述
ostree admin pin {INDEX}

描述
确保在 上的部署不会成为垃圾 默认收集。这称为“固定”。如果提供了该选项,则撤消固定操作。INDEX-u

选项

  • –unpin,-u
    撤消固定操作。

ostree-admin-set-origin

名称
ostree-admin-set-origin — 更改“origin”(升级位置)

概述
ostree admin set-origin {REMOTENAME} {URL} [BRANCH]

描述
添加一个名为 REMOTENAME 的新远程(如果没有 已经存在)。然后更改源文件 当前部署。这是将是 “跟踪”并使用OSTREE管理进行升级 升级。

选项

  • –set=KEY=VALUE
    为远程设置一个选项。

  • –index=INDEX
    更改部署的源 编号索引(起始 从 0)。

实例

ostree admin set-origin exampleos http://os.example.com/repo exampleos/10.0/main/router

ostree-admin-status

名称
ostree-admin-status — 列出部署

概述
ostree admin status

描述
列出可引导到的部署。包括 osname、校验和后跟部署串行和 refspec。星号表示当前启动的部署。

实例

$ ostree admin status

        * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime
          gnome-ostree ce19c41036cc45e49b0cecf6b157523c2105c4de1c.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime

ostree-admin-switch

名称
ostree-admin-switch — 从当前源构建新树并部署它(如果它发生了变化)

概述
ostree admin switch {REF}

描述
从当前远程中选取不同的 REF 进行跟踪。这是将通过ostree管理员升级进行“跟踪”和升级的参考。与升级一样,将保留操作系统状态。

选项

  • –os=“STATEROOT”
    使用与当前操作系统根目录不同的操作系统根目录。

实例

ostree admin switch fedostree/20/workstation/gnome/core

ostree-admin-undeploy

名称
ostree-admin-undeploy — 删除给定索引处的部署

概述
ostree admin undeploy {INDEX}

描述
删除索引处的部署。INDEX 必须在范围内,并且不引用当前启动的部署。

实例

$ ostree admin status

        * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime
          gnome-ostree ce19c41036cc45e49b0cecf6b157523c2105c4de1c.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime
$ ostree admin undeploy 1

        Transaction complete; bootconfig swap: no deployment count change: -1)
        Freed objects: 326.5 kB
        Deleted deployment ce19c41036cc45e49b0cecf6b157523c2105c4de1c.0
$ ostree admin status

        * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0
            origin refspec: gnome-ostree/buildmain/x86_64-runtime

ostree-admin-unlock

名称
ostree-admin-unlock — 为修补程序或开发准备当前部署

概述
ostree admin unlock [OPTIONS…]

描述
删除只读绑定挂载,并将其替换为可写覆盖文件系统。这 默认调用“解锁”适用于 开发/测试目的。叠加层中的所有更改 在重新启动时丢失。但是,此命令还支持 “修补程序”,见下文。/usr

选项

  • –hotfix
    如果提供了此选项,则 当前部署将作为回滚进行克隆 目标。此选项适用于以下情况: 用户空间组件的紧急安全更新 如。这里的语义 不同于默认的“开发”解锁模式 在这种情况下,重新启动将保留任何更改(这就是 您可能需要安全修补程序)。sshd

ostree-admin-upgrade

名称
ostree-admin-upgrade — 从当前源构造新树并部署它(如果它发生了变化)

概述
ostree admin upgrade [OPTIONS…]

描述
从内部下载当前引用的最新版本 服务器并部署它(如果它已更改)。重新启动计算机以 更改生效。这些阶段可以通过 和 进行拆分。–pull-only–deploy-only

选项

  • –os=“STATEROOT”
    使用与当前操作系统根目录不同的操作系统根目录。

  • –pull-only
    仅对存储库执行拉取;不要 创建部署。因此,此选项可以安全地用于 后台计划作业,保证不更改 系统状态。

  • –deploy-only
    从最新提交创建新部署 在跟踪的原点参考规范中。此选项旨在使用 通过 检测到更改的计划系统,通过 并准备部署它们。–pull-only

  • –stage
    在关闭时执行部署完成。推荐 并且将来可能会成为默认值。

  • –reboot,-r
    成功升级后重新启动。

  • –allow-downgrade
    允许部署按时间顺序排列的老树。

  • –override-commit=“校验和”
    部署校验和而不是最新的树。

实例

$ ostree admin upgrade

        No update available.

ostree-admin

名称
ostree-admin — 使用ostree管理命令之一

概述
ostree admin {SUBCOMMAND}

描述
使用ostree管理子命令。

子命令

  • cleanup

  • config-diff

  • deploy

  • init-fs

  • instutil

  • os-init

  • pin

  • set-origin

  • status

  • switch

  • undeploy

  • unlock

  • upgrade

查看每个 admin 子命令的手册页,例如:

man ostree-admin cleanup

选项

  • –help, -h
    使用帮助

  • –sysroot=“PATH”
    在 PATH 上创建新的 OSTree 系统根

  • –print-current-dir
    将指定 sysroot 中当前活动部署的部署目录的完整路径打印到标准输出。这与指定子命令不兼容。

ostree-cat

名称
ostree-cat — 显示或连接文件的内容

概述
ostree cat {COMMIT} {PATH…}

描述
此命令的功能与典型的 Unix“cat” 命令非常相似,因为它显示文件的内容,或者在给定两个或多个文件的情况下将它们连接起来。但是,此命令要求用户指定提交 - 对应于给定构建的校验和或引用规范。如果您使用 refspec,OSTree 将引用最近的提交,除非您在 refspec 末尾使用克拉 (^) 指定父版本。然后,它将在该给定提交中操作该命令。

实例

$ ostree --repo=repo cat foo helloworld.txt  # foo 为分支名, helloworld.txt 为 foo 分支下 `ostree ls` 显示的文件名

        Hello, world!

ostree-checkout

名称
ostree-checkout — 将提交签出到文件系统中

概述
ostree checkout [OPTIONS…] {COMMIT} [DESTINATION]

描述
将给定的提交签出到目录 DESTINATION 下的文件系统中。如果未指定 TARGET,则 COMMIT 将成为目标签出目标。如果 COMMIT 目标已存在,则命令将出错,除非选择了选项 --union 。

选项

  • –user-mode, -U
    不要更改文件所有权或初始化扩展属性。

  • –subpath=“PATH”
    签出子目录路径。

  • –union
    保留现有目录和未更改的文件,覆盖现有文件。

  • –union-add
    保留现有目录和文件。

  • –union-identical
    喜欢 ,但错误输出 如果文件将被替换为其他文件。添加新文件 和目录,忽略相同的文件,并保持现有 目录。需要。–union-H

  • –whiteouts
    处理空白文件(Docker 样式)。

  • –process-passthrough-whiteouts
    启用对 0:0 字符设备的覆盖白化提取。 叠加白化在 ostree AS 内部编码并提取为 0:0 字符设备。这很有用携带 嵌入到 OSTREE 中的容器存储。.ostree-wh.filename

  • –allow-noent
    如果指定的路径不存在,则不执行任何操作。

  • –from-stdin
    从标准输入处理许多结帐。

  • –from-file=“FILE”
    处理输入文件中的许多签出。

  • –fsync=“POLICY”
    POLICY 是一个布尔值,它指定 fsync 是否应该 用与否。默认值为 true。

  • –require-hardlinks, -H
    如果硬链接失败,请不要回退到完整副本。

  • –force-copy-zerossize, -z
    此选项不执行任何操作;默认情况下,该功能现在始终处于打开状态。

  • –force-copy, -C
    切勿硬链接(但如果可用,可以重新链接)。

  • –bareuseronly-dirs, -M
    抑制 0775 之外的目录模式位(suid, world 可写等)。

  • –skip-list=“FILE”
    跳过签出 FILE 中列出的绝对文件路径, 每行一个。

  • –selinux-policy
    根据根文件系统路径中的策略设置 SELinux 标签 (可能是 /)。这意味着.–force-copy

实例

$ ostree --repo=repo checkout foo tree-checkout/ # foo 为查看的分支名
$ cat tree-checkout/hello.txt
Hello world!

ostree-checksum

名称
ostree-checksum — 对文件或目录进行校验和

概述
ostree checksum {PATH}

描述
为给定文件或目录生成校验和。

选项

  • –ignore-xattrs
    校验和时忽略扩展属性。

实例

$ ostree checksum filename # filename 为待校验的文件或目录

        67e382b11d213a402a5313e61cbc69dfd5ab93cb07fbb8b71c2e84f79fa5d7dc

文件校验和可在 repo/ 文件目录的 *.file 进行查看。

ostree-commit

名称
ostree-commit — 提交一个新的修订版

概述
ostree commit [OPTIONS…] --branch= {BRANCH} [PATH]

描述
这允许您将更改提交到分支。分支的规范是必需的。该命令将打印成功提交的校验和。

选项

  • –subject, -s=“SUBJECT”
    一行主题。(可选)

  • –body, -m=“BODY”
    完整描述 。(可选)

  • –body-file, -F=“FILE”
    文件中的完整提交说明。(可选)

  • –editor, -e
    打开提交说明的文本编辑器。它将按优先级降序使用 OSTREE_EDITOR、VISUAL、EDITOR 或 vi。如果消息留空,提交将中止。

  • –branch, -b=“BRANCH”
    分支。必需,除非给出 --orphan。

  • –parent=“COMMIT”
    父级校验和或“none”表示显式不使用父级。如果未指定,则用作父项(如果不存在,则不用作父项)。BRANCHBRANCH

  • –tree=“dir=PATH” or “tar=TARFILE” or “ref=COMMIT”
    将给定的参数覆盖为树。提交存档时,可以指定 TARFILE 从标准输入读取存档。-

  • –base=“REV”
    从提交中的内容开始。这与未应用提交修饰符的不同之处。这通常是您想要的 创建派生提交。这也用于 。–tree=ref=REV–selinux-policy-from-base

  • –add-metadata-string=“KEY=VALUE”
    向元数据添加键/值对。可以多次指定。

  • –add-metadata=“KEY=VALUE”
    将键/值对添加到元数据,其中 KEY 是字符串,VALUE 是 g_variant_parse() 格式。可以多次指定。

  • –keep-metadata=“KEY”
    保留父级的元数据键及其关联的值。可以多次指定。

  • –add-detached-metadata-string=“KEY=VALUE”
    将键/值对添加到分离的元数据。

  • –owner-uid=“UID”
    设置文件所有权用户标识。

  • –owner-gid=“GID”
    设置文件所有权组 ID。

  • –no-xattrs
    不要导入扩展属性。

  • –bootable
    为可引导的 Linux 文件系统树注入标准元数据。

  • –link-checkout-speedup
    针对由硬链接组成的树提交到存储库进行优化。

  • –tar-autocreate-parents
    加载 tar 存档时,根据需要自动创建父目录。

  • –skip-if-unchanged
    如果内容与以前的提交没有变化,则不执行任何操作。

  • –consume
    从本地目录(即不是存档或 --tree=ref)提交时, 承担内容的所有权。这可能只是涉及删除它, 但如果可能的话,内容可能只是ED的 到存储库中,而不是创建新副本。rename()

  • –statoverride=“PATH”
    包含要授予权限的修改列表的文件(文件模式为 十进制,后跟空格,后跟文件路径)。指定的模式 与文件的原始模式进行 OR,除非前面有“=”。

  • –skip-list=“PATH”
    包含要跳过的文件路径列表的文件(每行一个路径)。

  • –table-output
    以键:值格式输出更多信息。

  • –generate-sizes
    生成大小信息以及提交元数据。

  • –gpg-sign=“KEY-ID”
    用于签署提交的 GPG 密钥 ID(如果有 GPGME - GNU Privacy Guard 变得简单)。

  • –gpg-homedir=“HOMEDIR”
    寻找密钥环时使用的 GPG 主目录(如果有 GPGME - GNU Privacy Guard 变得容易)。

  • –timestamp=“TIMESTAMP”
    覆盖提交到时间戳的时间戳。

  • –orphan
    在不写入引用(分支)的情况下创建提交

  • –fsync=“POLICY”
    POLICY 是一个布尔值,用于指定是否应使用 fsync。默认值为 true。

-s, --sign-type
使用特定的签名引擎。现在 提供 ED25519 和虚拟人 签名类型。 默认值为 ed25519 。

  • –sign=“KEY-ID”
    这将读取一个密钥(对应于从提供的路径提供的密钥。密钥应采用 base64 编码。–sign-type

  • –sign=“KEY-ID”
    在新代码中,避免使用它,因为通过命令行参数传递私钥 容易在日志和进程列表中泄漏。

即:KEY-ID

for ed25519:
base64- 用于提交签名的编码密钥。

for dummy:
用作密钥的 ASCII 字符串。

实例

$ ostree commit --branch=my-branch --subject="Initial commit"

        67e382b11d213a402a5313e61cbc69dfd5ab93cb07fbb8b71c2e84f79fa5d7dc

ostree-config

名称
ostree-config — 更改配置设置

概述
ostree config get {GROUPNAME.KEYNAME}

ostree config get { --group=GROUPNAME} { KEYNAME}

ostree config set {GROUPNAME.KEYNAME} {VALUE}

ostree config set { --group=GROUPNAME} { KEYNAME} {VALUE}

ostree config unset {GROUPNAME.KEYNAME}

ostree config unset { --group=GROUPNAME} { KEYNAME}

描述
Ostree config get 显示的值 组中的键名 组名

OSTREE config set 设置的值 组中的键名 组名 到值 .
ostree config unset 删除密钥 组中的键名 组名 以便 OSTree 使用它的默认值。它不是一个 指定组名或 密钥名不存在。

实例

$ ostree --repo=repo config get core.mode

bare

$ ostree config set --group='remote "myremote"' url http://example.com/repo

$ ostree config unset core.lock-timeout-secs

ostree-create-usb

名称
ostree-create-USB — 将给定的引用放在外部驱动器上以进行P2P分发。

概述
ostree create-usb [OPTIONS…] {MOUNT-PATH} {COLLECTION-ID REF} [COLLECTION-ID REF…]

描述
此命令在 MOUNT-PATH 中创建一个存储库并拉取给定的 REF(s)到其中,以便可以找到它们并从中提取(可能由另一台脱机的计算机)。 参见 ostree-find-remotes 来了解有关 P2P 分发的更多信息。

为了让 ostree 从挂载的文件系统中提取引用(例如 USB 驱动器)存储库必须位于标准位置。具体说来 的子目录被选中, 然后 并被检查。默认情况下,ostree create-usb 使用 , 但是,如果您使用符号链接指定另一个位置,则会在 中创建。.ostree/repos.d.ostree/repoostree/repovar/lib/flatpak/repo.ostree/repo–destination-repo.ostree/repos.d

此命令将重新生成文件 在目标存储库中,以便它保持准确,因此不应尝试在目标存储库中使用摘要签名。这 不应该是一个问题,因为支持从中提取的客户端 USB 装载使用签名的按存储库和每个提交元数据,而不是 摘要签名。summary

选项

  • –disable-fsync
    不要调用 fsync()。

  • –destination-repo=DEST
    在 DEST 中的 MOUNT-PATH 下创建存储库,而不是 默认位置。

  • –commit=COMMIT
    拉取提交而不是任何 REF 指向的内容。这只能 如果指定了单个引用,则使用。

实例

ostree --repo=/var/lib/flatpak/repo create-usb /run/media/mwleeds/f6d04c7a-60f6-4ba3-bb96-0f40498675be com.exampleos.Apps app/org.kde.Khangman/x86_64/stable com.exampleos.Apps ostree-metadata com.exampleos.Apps appstream/x86_64


5 metadata, 213 content objects imported; 1 KiB transferred in 1 seconds    

ostree-diff

名称
ostree-diff — 将目录与修订版进行比较

概述
ostree diff [OPTIONS…] {REV_OR_DIR} {REV_OR_DIR}

描述
将一个目录或修订版本与另一个目录或修订版本进行比较。如果REV_OR_DIR以“/”或“./”开头,则将其解释为目录,否则为修订版。显示修改、添加和删除的文件和目录。如果第二个REV_OR_DIR中没有文件,则会显示“A”表示“已添加”。如果第一个REV_OR_DIR中的文件不在第二个文件中,则显示“D”表示“已删除”。“M”表示“修改”也将显示。

选项

  • –stats
    打印各种统计信息。

  • –fs-diff
    打印文件系统差异。

  • –owner-uid
    对本地文件使用文件所有权用户标识。

  • –owner-gid
    对本地文件使用文件所有权组 ID。

实例

$ ostree diff my-branch^ my-branch

        A   /testdirectory
        M   /helloworld.txt
$ ostree diff my-branch my-branch^

        D   /testdirectory
        M   /helloworld.txt

ostree-export

名称
ostree-export — 从 OSTree 提交生成 tar 归档

概述
ostree export [OPTIONS…] {BRANCH}

描述
此命令从 OSTree commit.这对于备份等情况很有用, 将OSTree提交转换为Docker镜像等。

实例

ostree export exampleos/x86_64/standard | gzip > exampleos-standard.tar.gz # 官方手册不生效

或者

ostree --repo=repo export foo | gzip > foo.tar.gz

ostree-find-remotes

名称
ostree-find-remotes — 查找远程为给定的参考提供服务

概述
ostree find-remotes [OPTIONS…] {COLLECTION-ID} {REF} [COLLECTION-ID REF…]

描述
OSTree 不仅能够从配置的远程服务器中提取数据,还能够从 LAN 上的对等计算机以及已安装的文件系统(例如 USB 驱动器)中提取数据。此功能需要使用集合 ID 和 GPG 验证。

find -remotes命令搜索声称提供一个或多个给定 COLLECTION-ID REF 对的遥控器,并打印有关它们的信息,遥控器按延迟排序(安装 > LAN > Internet)。默认情况下,OSTree 在配置文件、已安装的文件系统(在众所周知的位置)以及使用 Avahi 的 LAN 上搜索远程设备。搜索 LAN 遥控器需要使用 Avahi 支持编译 OSTree,并且需要运行 Avahi 守护进程。您可以使用下面记录的选项覆盖默认的查找器集(遥控器的源) --finders。

建议使用 create-usb 命令将引用放在 USB 上,以便 find - remotes发现它们。请参阅 ostree-create-usb (1)。

选项

  • –cache-dir=DIR
    在 中使用备用缓存目录。DIR

  • –disable-fsync
    不要调用 fsync()。

  • –finders=FINDERS
    使用指定的逗号分隔的查找器列表而不是默认集。可能的值:config、 lan和mount(或其任意组合)。

  • –pull
    拉取为每个引用找到的最新提交。

  • –mirror
    执行镜像拉取(请参阅ostree pull --mirror 的文档 )。该选项只能与 结合使用–pull。

实例

$ ostree find-remotes --finders=mount,lan com.exampleos.Os exampleos/x86_64/standard

Result 0: http://10.0.64.202:43381/0
 - Finder: OstreeRepoFinderAvahi
 - Keyring: exampleos.trustedkeys.gpg
 - Priority: 60
 - Summary last modified: 2018-01-12T19:00:28Z
 - Refs:
    - (com.exampleos.Os, exampleos/x86_64/standard) = c91acd964b3fda561b87bfb7f7c80e36220d76b567f0ce90c0e60742ef33c360

1/1 refs were found.

ostree-fsck

名称
ostree-fsck — 检查存储库的一致性

概述
ostree fsck [OPTIONS…]

描述
检查存储库以验证提交对象的内容完整性。查找丢失和损坏的对象和元数据,并验证目录结构和元数据。

选项

  • –安静,-Q
    仅打印错误消息。

  • –delete
    删除损坏的对象。

  • –add-tombstones
    为引用但缺失的提交添加逻辑删除提交。

  • –verify-bindings
    验证每个引用指向的提交在绑定集中是否具有该引用。您通常应该添加此选项;它仅默认为关闭以实现向后兼容性。

  • –verify-back-refs
    验证提交的引用绑定中列出的所有引用是否都指向该提交。这不能在随着新提交的添加而改变 refs 目标的存储库中使用,但可以在为每次提交从头开始重新生成的存储库中使用。–verify-bindings也有 暗示。

实例

$ ostree fsck --repo=repo

        Validating refs...
        Validating refs in collections...
        Enumerating objects...
        Verifying content integrity of 6 commit objects...
        fsck objects (19/19) [=============] 100%
        object fsck of 6 commits completed successfully - no errors found.

ostree-gpg-sign

名称
ostree-gpg-sign — 签署提交

概述
ostree gpg-sign [OPTIONS…] {COMMIT} {KEY-ID…}

描述
为每个指定的 GPG 密钥添加新签名到提交。目前,即使提交已使用给定密钥进行签名,这也会附加新签名。

选项

  • –delete
    删除具有任何 GPG 密钥 ID 的签名。

  • –gpg-homedir=“HOMEDIR”
    寻找钥匙圈时使用的 GPG Homedir。

ostree-init

名称
ostree-init — 初始化一个新的空存储库

概述
ostree init [OPTIONS…]

描述
创建新的空存储库。

选项

  • –mode=“MODE”
    以给定模式初始化存储库(bare、bare-user、 bare-user-only、archive)。默认为bare. 请注意, archive存储库配置文件实际上会有archive-z2,因为这是历史名称。

有关这些模式之间的差异,请参阅手册。简而言之,bare模式按原样存储文件,因此可以直接硬链接, bare-user使用扩展属性来存储所有权和 xattr 信息,允许非 root 操作,bare-user-only不存储所有权信息,并archive存储压缩文件,以便通过网络提供服务。

  • –collection-id=COLLECTION-ID
    设置存储库的集合 ID。此存储库的克隆中的远程服务器必须配置相同的值,以便通过点对点方式提取源自此存储库的引用。

该集合 ID 必须是持久的且全局唯一的。它的格式为反向 DNS 名称(类似于 D-Bus 接口)。它必须设置为您控制下的反向 DNS 域。

可以省略此选项(默认)以使存储库不支持对等分发。将来可能会将集合 ID 添加到现有存储库中,以便从那时起实现点对点分发。

如果将来存储库的集合 ID 发生更改,则对于所有未将其远程配置更新为新集合 ID 的对等点,来自存储库的引用的点对点分发将会中断。

ostree-log

名称
ostree-log — 显示从提交或引用开始的日志

概述
ostree log [OPTIONS…] {REF}

描述
显示对给定引用或分支的提交日志。包括提交校验和、时间戳和提交消息。

选项

  • –raw
    显示原始变体数据。

实例

$ ostree log my-branch

        commit 67e382b11d213a402a5313e61cbc69dfd5ab93cb07fbb8b71c2e84f79fa5d7dc
        Date:  2014-06-12 13:42:54 +0000
            This is the second commit

        commit ce19c41036cc45e49b0cecf6b157523c2105c4de1ce30101def1f759daafcc3e
        Date:  2014-06-12 11:20:08 +0000
            Initial commit

ostree-ls

名称
ostree-ls — 列出文件路径

概述
ostree ls [OPTIONS…] {COMMIT} [PATHS…]

描述
打印给定提交内以及给定路径(如果指定)内的文件路径列表。文件行输出的第一个字母指定类型:“-”表示常规文件,“d”表示目录,“l”表示符号链接。有关特定输出的更多详细信息,请参阅示例部分。

选项

  • –dironly,-d
    不要递归到目录参数中。

  • –recursive,-R
    递归打印目录。

  • –checksum,-C
    打印校验和。

  • –xattrs,-X
    打印扩展属性。

  • –nul-filenames-only
    仅打印文件名,NUL 分隔。

实例

$ ostree ls my-branch # my-branch 为分支名

        d00644 0 0    0 /
        -00644 0 0    2 /helloworld.txt
        d00755 0 0    0 /testdirectory

此处,第一列是文件类型符号(如说明部分中所述),后跟 S_IFMT 文件类型。接下来的两列(此处:0 0)分别是文件的用户 ID 和组 ID。中断后,下一个数字表示该文件的标准大小。最后一列是文件路径。

ostree-prune

名称
ostree-prune — 搜索无法访问的对象

概述
ostree prune [OPTIONS…]

描述
这将搜索当前存储库中无法访问的对象。如果发现无法访问的对象,该命令将删除它们以释放空间。如果–no-prune调用该选项,该命令将仅打印无法访问的对象并建议删除它们。

选项

  • –no-prune
    仅显示无法访问的对象;不要删除。

  • –refs-only
    仅通过引用计算可访问性。

  • –delete-commit=COMMIT
    指定要删除的提交。

  • –keep-younger-than=DATE
    所有早于 DATE 的提交都将被删除。DATE 的格式与 GNU 实用程序接受的格式相同date- 有关详细信息,请参阅info date。

  • –depth=DEPTH
    每个提交仅遍历深度(整数)父项(默认值:-1=无限)。

  • –static-deltas-only=DEPTH
    该选项目前只能与 结合使用 --delete-commit。以前版本的 ostree 默默地接受了没有该选项的选项,并忽略了它。然而,有一些期望的用例仅修剪静态增量(同时保留提交),并且很可能在某些时候此选项将支持仅 --delete-commit.

  • –commit-only
    只遍历并删除提交对象。这留下了孤立的元和内容对象,可以通过另一个修剪调用来清理它们。人们可能希望使用此选项以便宜的方式删除多个提交,然后在最后使用更昂贵的修剪进行清理。

实例

$ ostree prune

        Total objects: 25627
        No unreachable objects

ostree-pull-local

名称
ostree-pull-local — 从源存储库复制数据

概述
ostree pull-local [OPTIONS…] {SOURCE_REPO} [REFS…]

描述
从给定存储库复制数据;仅针对同一系统上的存储库之间的副本进行优化。

选项

  • –remote=“REMOTE”
    将 REMOTE 添加到 refspec。

  • –disable-fsync
    不要调用 fsync()。

  • –untrusted
    不要信任来源,验证校验和并且不要硬链接到来源。

  • –disable-verify-bindings
    禁用提交元数据绑定的验证。

实例

$ ostree pull-local /ostree/repo

        Enumerating objects...
        pull: 25709/25709 scanned, 0 objects copied
        Writing 5 refs

ostree-pull

名称
ostree-pull — 从远程存储库下载数据

概述
ostree pull {REMOTE} [BRANCH]

选项

  • –commit-metadata-only
    仅提取提交元数据。

  • –cache-dir=DIR
    使用 中的备用缓存目录DIR。

  • –disable-fsync
    不要调用 fsync()。

  • –localcache-repo
    就像 git 的clone --reference. 在执行 HTTP 获取时,重用提供的 OSTree 存储库作为本地对象缓存。可以指定多次。

  • –untrusted
    不要信任本地源,验证校验和,不要硬链接到源。

  • –disable-static-deltas
    不要使用静态增量。

  • –mirror
    写入适合镜像的refs,即refs存储在 heads/目录中而不是目录 中remotes/。这使得目标存储库适合导出以供其他客户端作为 ostree 远程进行拉取。如果未指定特定引用,则将获取所有引用(远程必须存在摘要文件)。

  • –subpath=SUBPATH
    仅拉取提供的子路径。

  • –depth=DEPTH
    遍历深度父项 (-1=无限)(默认值:0)。

  • –network-retries=N
    指定出错时应重试每个下载的次数(默认值:5)

  • –disable-verify-bindings
    禁用对提交元数据绑定的验证。

描述
如果没有 --mirror,此命令将在每个拉取分支的目录下创建新的引用remotes/REMOTE/,除非它们已经创建。REMOTE:BRANCH然后可以通过in ostree子命令(例如)引用此类引用ostree log origin:exampleos/x86_64/standard。

此命令可以仅检索特定提交,或者一直执行远程存储库的完整镜像。如果未BRANCH指定,则检索所有配置的分支。

字符中的特殊语法@允许指定要从分支检索的特定提交。其用例有点类似于拉取特定的 git 标签;例如,可以编写脚本将系统升级到已知良好的版本,而不是内容提供商提供的最新版本。

实例

ostree --repo=repo pull --depth=-1 --mirror remote_name

执行远程的完整镜像。(这是 如果您的存储库也是模式,则可能最有用)archive

ostree --repo=repo pull remote_name exampleos/x86_64/standard

获取最近提交到 。exampleos/x86_64/standard

ostree --repo=repo pull remote_name exampleos/x86_64/standard@98ea6e4f216f2fb4b69fff9b3a44842c38686ca685f3f55dc48c5d3fb1107be4

下载以 开头的特定提交,就好像它是 的最新提交一样。98ea6eexampleos/x86_64/standard

ostree-refs

名称
ostree-refs — 列表引用

概述
ostree refs [OPTIONS…] [PREFIX]

ostree refs {EXISTING} {–create=NEWREF}

描述
列出主机上可用的所有引用。如果指定,PREFIX 分配 refspec 前缀;默认前缀为 null,列出所有引用。该命令还可用于创建或删除引用。

选项

  • –list
    由于历史原因,如果没有此选项将去除指定的前缀 从输出。通常,人们希望看到完整的 ref,因此提供此选项可确保 ref 是 完整打印,而不是 截断。refs

  • –create=NEWREF
    创建一个指向提交存在的引用。NEWREF 必须不存在,并且存在 必须是现有提交。多个引用可以指向同一个提交。

  • –delete
    删除与 PREFIX 匹配的参考文献,而不是列出它们。如果您尝试回收空间,则需要ostree prune或ostree admin cleanup。

  • –revision,-r
    列出参考文献时,还要打印他们的修订版本。修订版本将由制表符分隔。

  • –alias,-A
    如果与 一起使用–create,则创建别名。否则只列出别名。

  • –collections,-c
    使用集合 ID 和引用名称的组合来启用与引用的交互。列出引用时,这会更改输出格式以包含集合 ID,并启用列出远程镜像引用。

创建引用时,传递给选项的 refspec 值 --create将被视为 COLLECTION-ID:REF-NAME并创建镜像引用。(这是对 refspec 语法的滥用。)

删除引用时,集合 ID 等于 PREFIX 的所有引用都会被删除。

  • –force
    NEWREF使用进行 创建时–create,允许更新现有引用而不是出错。

实例

$ ostree refs

        my-branch
        gnome-ostree/buildmain/x86_64-runtime

ostree-remote

名称
ostree-remote — 控制远程存储库配置

概述
ostree remote add [OPTIONS…] {NAME} {URL} [BRANCH…]

ostree remote delete {NAME}

ostree remote show-url {NAME}

ostree remote list [OPTIONS…] {NAME}

ostree remote gpg-import [OPTIONS…] {NAME} [KEY-ID…]

ostree remote gpg-list-keys {NAME}

ostree remote refs {NAME}

ostree remote summary [OPTIONS…] {NAME}

ostree remote add-cookie {NAME} {DOMAIN} {PATH} {COOKIE_NAME} {VALUE}

ostree remote delete-cookie {NAME} {DOMAIN} {PATH} {COOKIE_NAME} {VALUE}

ostree remote list-cookies {NAME}

描述

更改远程存储库配置。NAME 指的是遥控器的名称。

addBRANCH子命令的参数 指定远程配置的分支。 有关详细信息, 请参阅ostree.repo-config (5)中的部分 。branches

gpg -import子命令可以将 GPG 密钥关联到特定的远程存储库,以便在从该存储库提取签名提交时使用(如果启用了 GPG 验证)。gpg -list-keys子命令可用于查看当前与远程存储库关联的 GPG 密钥。

要导入的 GPG 密钥可以是二进制 OpenPGP 格式或 ASCII 格式。可选的 [KEY-ID] 列表可以限制从密钥环文件或输入流导入哪些密钥。如果省略此列表,则导入所有密钥。如果既没有给出–keyring也没有–stdin给出选项,则从用户的个人 GPG 密钥环导入密钥。

各种 cookie 相关命令允许管理远程特定 cookie jar。

“添加”选项

  • –set=“KEY=VALUE”
    为远程设置配置选项 KEY=VALUE。

  • –if-not-exists
    如果提供的远程存在,则不执行任何操作。

  • –force
    更换提供的远程(如果存在)。

  • –no-gpg-verify
    禁用 GPG 验证。

  • –gpg-import=FILE
    从文件导入一个或多个 GPG 密钥。

相当于 ostree remote gpg-import --keyring=FILE。

  • –collection-id=COLLECTION-ID
    将远程的集合 ID 设置为存储库所有者提供的值,这允许来自该远程的引用在点对点之间共享。

“列表”选项
-u, --show-urls
在列表中显示远程 URL

“参考”选项

  • –revision,-r
    还打印每个参考的修订版本。修订版本将由制表符分隔。

  • –cache-dir=目录
    使用 中的备用缓存目录DIR。

“GPG-Import”选项
-k, --keyring=FILE
从文件中导入一个或多个密钥。

可以重复此选项以从多个文件导入,但不能与 --stdin.

  • –stdin
    从标准输入导入一个或多个键。

该选项不能与 结合使用 --keyring。

“摘要”选项

  • –cache-dir=目录
    使用 中的备用缓存目录DIR。

  • –raw
    显示原始变体数据

实例

$ ostree --repo=repo config set --group='remote "myremote"' url http://example.com/repo # 增加远程连接
$ ostree --repo=repo remote show-url myremote
        http://example.com/repo

ostree.repo-config

名称
ostree.repo-config — OSTree 仓库配置

描述
OSTree 中的 config 文件 是一个 XDG桌面入口规范格式 的密钥文件。它有多个全局标志,以及零个或多个远程标志描述如何访问远程仓库。

参见 ostree.repo(5)了解关于 OSTree 存储库的信息。

[Core]部分选项
存储库全局选项。定义了以下条目:

mode
bare, bare-user, bare-user-only, 或者archive-z2(请注意,archive 在其他任何地方都使用)。

repo_version
目前,必须将其设置为 1 。

auto-update-summary
bool 类型值。当任何 ref 新增、移除或更新,控制是否自动更新摘要文件,其他可能导致摘要文件过时(如静态增量或集合 ID)不会触发自动更新。

commit-update-summary
此选项已弃用。改用 auto-update-summary ,因此选项现在是别名。

fsync
bool 类型值。当提交、拉取和签出时,控制是否确保文件位于稳定的存储中。默认值为 true 。

如果禁用 fsync,OSTree 在内核崩溃或断电将不再具有鲁棒性。

您可以选择为本地开发仓库禁用此功能,假设它们可以从源重新创建。同样,您可以禁用可以重新拉动的镜像。

对于系统存储库,如果您有不间断电源和经过良好测试的内核,您可以选择禁用 fsync。

per-object-fsync
默认情况下,OSTree 将在写入所有内容后批处理 fsync();但是,这可能会导致其他也调用 fsync() 的进程出现延迟峰值。打开此布尔值可以减少潜在的延迟峰值,但代价是减慢 OSTree 更新速度。您很可能希望默认启用此功能以进行“后台”操作系统更新。

min-free-space-percent
整数百分比值 (0-99),指定底层文件系统中要保持空闲的总空间(以块为单位)的最小百分比。默认值为 3,当未min-free-space-size设置此选项时将强制执行该值。

如果min-free-space-size设置为非零值,min-free-space-percent则被忽略。请注意,min-free-space-percent对于元数据对象不强制执行。假设与内容对象相比,元数据对象的大小相对较小,因此不属于该选项的范围。

如果设置为非零 值,将被忽略。注意 ,不强制执行 元数据对象。假定元数据对象是相对的 与内容对象相比,尺寸较小,因此保持在 此选项的范围。min-free-space-sizemin-free-space-percentmin-free-space-percent

min-free-space-size
指定底层文件系统中保持可用的最小空间的值(以 2 MB、GB 或 TB 为单位)。可接受值的示例:500MB(524×288×000 字节)、 1GB(1×073×741×824 字节)、 1TB(1×099×511×627×776 字节)。

如果此选项设置为非零值,并且 min-free-space-percent也已设置,则此选项优先。请注意,min-free-space-size对于元数据对象不强制执行。假设与内容对象相比,元数据对象的大小相对较小,因此不属于该选项的范围。

如果此选项设置为非零值,并且也设置了此选项 优先。请注意,是 不对元数据对象强制执行。假定元数据对象 与内容对象相比,尺寸相对较小,因此可以保留 超出此选项的范围。

add-remotes-config-dir
控制是否将新遥控器添加到遥控器配置目录中的布尔值。默认 true为系统 ostree 存储库。当这是 时false,遥控器将被添加到存储库的config文件中。

这仅适用于使用远程配置目录的存储库,例如系统 ostree 存储库,它使用/etc/ostree/remotes.d. 非系统存储库不使用远程配置目录,除非在打开存储库时指定了一个目录。

payload-link-threshold
一个整数值,指定创建有效负载链接的最小文件大小。默认情况下它是禁用的。

collection-id
您控制下的反向 DNS 域名,可实现此存储库中引用的点对点分发。请参阅 ostree-init (1)–collection-id中的部分

locking
控制 OSTree 是否在内部进行存储库锁定的布尔值。这使用文件锁,因此适用于多个进程排除(例如 Flatpak 和 OSTree 分别写入同一存储库)。自 2018.5 起默认启用此功能。

lock-timeout-secs
控制尝试获取锁时阻塞的秒数的整数值(见上文)。值 -1 表示无限期阻止。默认值是300。这个超时现在被认为是一个错误;因为它很可能会导致剥落。建议将其设置为 -1,并在需要时在更高的应用程序级别设置超时。

default-repo-finders
拉取时使用的分号分隔的默认查找器列表(参考源)。这可用于禁用从已安装的文件系统、本地网络或互联网上的对等点进行拉取。但请注意,它仅适用于 libostree API 的使用者或命令行未明确指定一组查找器的情况。可能的值: config、lan和 mount(或其任意组合)。如果未设置,则默认为config;mount;(因为 LAN 查找器价格昂贵)。

no-deltas-in-summary
控制 OSTree 是否应跳过将可用增量索引放入摘要文件中的布尔值。默认为 false。

自 2020.7 起,OSTree 可以在摘要文件之外使用增量索引,从而使摘要文件更小(特别是对于较大的存储库)。但是默认情况下,我们仍然在摘要文件中创建索引以使旧客户端能够工作。如果您知道所有客户端都是 2020.7 以后的版本,则可以启用此功能以节省网络带宽。

[remote “name”]部分选项

描述远程存储库位置。

url
必须在场;声明用于访问远程元数据和内容的 URL。另请参阅contenturl。支持的方案记录如下。

contenturl
声明用于访问内容(filez、静态增量部分)的 URL。指定后,url仅用于元数据:摘要、静态增量“超级块”。

branches
字符串列表。表示在拉取操作期间没有请求特定分支时从远程获取的默认配置分支。

proxy
字符串值(如果给定)应该是 HTTP 代理用于访问此存储库的 URL。

gpg-verify
布尔值,默认为 true。控制 OSTree 是否要求提交由已知的 GPG 密钥签名。有关详细信息,请参阅 GPG 下的ostree (1) 手册。

gpg-verify-summary
布尔值,默认为 false。控制 OSTree 是否检查摘要是否由已知的 GPG 密钥签名。有关详细信息,请参阅GPG 下的ostree (1) 手册。

tls-permissive
布尔值,默认为 false。默认情况下,将根据系统证书存储检查服务器 TLS 证书。如果设置了此变量,则任何证书都将被接受。

tls-client-cert-path
客户端证书的文件路径,在向此存储库发出请求时显示。

tls-client-key-path
包含客户端证书密钥的文件路径,在向此存储库发出请求时显示。

tls-ca-path
包含受信任锚点而不是系统 CA 数据库的文件的路径。

http2
布尔值,默认为 true。默认情况下,libostree将使用HTTP2;将其设置为false 将禁用它。对于解决损坏的服务器可能很有用。

unconfigured-state
如果设置,从该远程拉取将失败并显示配置的文本。这适用于具有订阅流程来访问内容的操作系统供应商。

custom-backend
如果设置,通过 libostree 从该远程拉取将失败,并出现提及该值的错误。建议将其设为软件标识符令牌(例如“examplecorp-fetcher”),而不是自由格式文本(“ExampleCorp Fetcher”)。这是供想要通过其他机制获取 ostree 提交的更高级别软件使用的,同时仍然重用围绕签名等核心 libostree 基础设施。

[sysroot] 部分选项
sysroot 的选项,其中包含 OSTree 存储库、部署和状态根。定义了以下条目:

bootloader
配置 OSTree 在部署 sysroot 时使用的引导加载程序。这可能采用值 bootloader=none、bootloader=auto、 bootloader=grub2、bootloader=syslinux或 bootloader=uboot。bootloader=zipl默认为auto.

如果none,则 OSTree 将仅生成sysroot/boot/loader/entries/ 用于部署的 BLS(引导加载程序规范)片段。

如果auto,那么除了生成 BLS 片段之外,OSTree 还会动态检查 grub2、uboot 和 syslinux 引导加载程序是否存在。如果找到其中一个引导加载程序,则 OSTree 将为找到的引导加载程序生成一个配置。例如,grub2-mkconfig针对 grub2 情况运行。

grub2还可以通过选择、syslinux或uboot来 明确请求特定的引导加载程序类型 zipl。

bls-append-except-default
以分号分隔的键值对字符串列表。例如: bls-append-except-default=key1=value1;key2=value2. 这些键值对将被注入到非默认部署的生成的 BLS 片段中。换句话说,默认部署的 BLS 片段将不受 bls-append-except-default.

bootprefix
布尔值;默认为 false。如果设置为 true,生成的引导加载程序条目将包含/boot作为前缀。将来这可能会默认打开。

[ex-integrity] 部分选项
这里的“ex-”前缀表示实验选项。该ex-integrity部分包含与系统完整性相关的选项。有关实验选项的信息可以在上游跟踪问题中找到。

/etc/ostree/remotes.d
除了/ostree/repo/config 文件之外,还可以在 中指定遥控器 /etc/ostree/remotes.d。远程配置文件必须以.conf;结尾 名称不以 结尾的文件.conf将被忽略。

存储库 URL/内容 URL
最初,OSTree 只有url遥控器选项。从那时起,该contenturl 选项就被引入了。这两个都支持 file、http、 和 https方案。

此外,这两者都可以使用字符串作为前缀 mirrorlist=,该字符串指示客户端目标 url 是“mirrorlist”格式,它是换行符分隔的 URL 的纯文本文件。较早的 URL 将优先。

请注意,目前,tls-ca-path和 tls-client-cert-path选项适用于每个 HTTP 请求,即使在使用contenturl和/或 时也是如此。mirrorlist将来这可能会更改为仅适用于元数据(即url,不 contenturl)获取。

每个远程 GPG 密钥环和验证
OSTree 支持每个远程 GPG 密钥环以及一个 gpgkeypath选项。有关详细信息,请参阅 ostree (1)。在部分中GPG verification。

每个远程 HTTP cookie
某些内容提供商可能希望通过 HTTP cookie 控制对远程存储库的访问。ostree远程 add-cookie和ostree 远程删除 cookie命令将更新名为 的每个远程后备 cookie jar $remotename.cookies.txt。

也可以看看
ostree (1) , ostree.repo (5)

ostree.repo

名称
ostree.repo — OSTree 存储库配置和布局

描述
OSTree 存储库在结构上类似于 git 存储库;它是一个包含文件系统树的内容寻址对象存储。然而,与 git 不同的是,ostree 旨在存储操作系统二进制文件。它记录了Unix uid和gid、权限以及扩展属性。

存储库可以采用以下三种模式之一: bare,它被设计为操作系统签出的硬链接源, bare-user,它类似于 bare,但适用于作为非根以及非根容器运行的系统,以及 archive-z2,它是为静态 HTTP 服务器设计的。

有一个系统存储库位于 /ostree/repo。如果没有通过命令行选项或 OSTREE_REPO环境变量指定存储库,ostree以及许多 API 调用将默认使用它。

存储库的组成部分
唯一的用户可编辑组件是 config文件。有关更多信息,请参阅ostree.repo-config (5)。

也可以看看
ostree (1) , ostree.repo-config (1)

ostree-reset

名称
ostree-reset — 将引用重置为以前的提交

概述
ostree reset {REF} {REF_TO_RESET_TO}

描述
给定一个提交,此命令会将引用重置为先前指定的提交。

实例


$ ostree log my-branch

        commit 67e382b11d213a402a5313e61cbc69dfd5ab93cb07
        Date:  2014-06-12 13:42:54 +0000
            This is the second commit

        commit ce19c41036cc45e49b0cecf6b157523c2105c4de1c
        Date:  2014-06-12 11:20:08 +0000
            Initial commit
$ ostree reset my-branch my-branch^

$ ostree log my-branch

        commit ce19c41036cc45e49b0cecf6b157523c2105c4de1c
        Date:  2014-06-12 11:20:08 +0000
            Initial commit

ostree-rev-parse

名称
ostree-rev-parse — 输出 rev 的目标

概述
ostree rev-parse {REV} {PATH}

选项

  • –single, -S
    如果存储库只有一次提交,则打印它;任何其他情况都会导致错误

描述
给定 REV,输出该修订版的最新提交的校验和。

实例

$ ostree rev-parse my-branch

        ce19c41036cc45e49b0cecf6b157523c2105c4de1ce30101def1f759daafcc3e

打印出的 REF 可通过 ostree show 查看。

ostree-show

名称
ostree-show — 输出元数据对象

概述
ostree show [OPTIONS…] {OBJECT}

描述
给定一个对象,显示该对象的元数据。对于特定修订,它将显示对该修订的最新提交的数据。

选项

  • –print-related
    显示“相关”提交。

  • –print-variant-type=“TYPE”
    内存映射对象(在本例中为文件名)到 GVariant 类型字符串。

  • –list-metadata-keys
    列出可用的元数据键。

  • –print-metadata-key=“KEY”
    打印元数据键的字符串值。

  • –list-detached-metadata-keys
    列出可用的分离元数据键。

  • –print-detached-metadata-key=“KEY”
    打印分离的元数据键的字符串值。

  • –print-sizes
    显示提交大小元数据。仅支持包含ostree.sizes 元数据的提交。使用ostree commit --generate-sizes创建提交时可以包含此内容 。

  • –raw
    显示原始变体数据。

  • –gpg-homedir=“HOMEDIR”
    查找密钥环时使用的 GPG 主目录(如果有 GPGME - GNU Privacy Guard Made Easy)。

实例


$ ostree --repo=repo show my-branch

        commit 67e382b11d213a402a5313e61cbc69dfd5ab93cb07
        Date:  2014-06-12 13:42:54 +0000

ostree-sign

名称
ostree-sign — 签署提交

概述
ostree sign [OPTIONS…] {COMMIT} {KEY-ID…}

描述
向提交添加新签名。请注意,目前,即使提交已使用给定密钥进行签名,这也会附加新签名。

“ed25519”可信和撤销的公钥有几个“众所周知的”系统位置——base64每行预期单编码密钥。

文件:

  • /etc/ostree/trusted.ed25519

  • /etc/ostree/revoked.ed25519

  • /usr/share/ostree/trusted.ed25519

  • /usr/share/ostree/revoked.ed25519

包含带有密钥的文件的目录:

  • /etc/ostree/trusted.ed25519.d

  • /etc/ostree/revoked.ed25519.d

  • /usr/share/ostree/trusted.ed25519.d

  • /usr/share/ostree/rvokeded.ed25519.d

选项
KEY-ID
for ed25519:
base64- 编码的秘密(用于签名)或公钥(用于验证)。

for dummy:
用作密钥和公钥的 ASCII 字符串。

  • –verify
    验证签名

-s, --sign-type
使用特定的签名机制。当前可用的 ed25519 和虚拟签名类型。默认值为 ed25519 。

  • –keys-file
    从文件 中读取密钥filename。

对于ed25519签名类型有效。对于ed25519此文件,每行必须包含base64编码的密钥(用于签名)或公钥(用于验证)。

  • –keys-dir
    重新定义系统路径,在其中搜索具有已知和已撤销密钥的文件和子目录。

ostree-static-delta

名称
ostree-static-delta — 管理静态增量文件

概述
ostree static-delta list

ostree static-delta show

ostree static-delta delete

ostree static-delta generate {–to=REV} [OPTIONS…]

ostree static-delta apply-offline [OPTIONS…] {PATH} [KEY-ID…]

ostree static-delta verify [OPTIONS…] {STATIC-DELTA} [KEY-ID…]

描述
列出和操作静态增量文件。

“Generate”选项

  • –from=“REV”
    从修订版 REV 创建增量

  • –to=“REV”
    创建修订版 REV 的增量。(此选项是必需的。)增量来自 REV 的父级,除非–from 或另有指定–empty。

  • –empty
    从头开始创建增量。

  • –max-usize=SIZE
    最大未压缩大小(以兆字节为单位)。

  • –sign-type=ENGINE
    使用特定的签名引擎。当前可用的 ed25519 和虚拟签名类型。默认值为 ed25519 。

  • –sign=“KEY-ID”
    有KEY-ID:

for ed25519:
base64- 用于签名的编码密钥。

for dummy:
用作密钥的 ASCII 字符串。

“Apply-offline”选项
KEY-ID
for ed25519:
base64- 用于验证的编码公钥。

for dummy:
用作公钥的 ASCII 字符串。

  • –sign-type=ENGINE
    使用特定的签名引擎。当前可用的 ed25519 和虚拟签名类型。

  • –keys-file
    从文件 中读取密钥filename。

对于ed25519签名类型有效。对于ed25519此文件,每行必须包含base64编码的公钥以进行验证。

  • –keys-dir
    重新定义系统路径,在其中搜索具有已知和已撤销密钥的文件和子目录。

“Verify”选项
KEY-ID
for ed25519:
base64- 用于验证的编码公钥。

for dummy:
用作公钥的 ASCII 字符串。

  • –sign-type=ENGINE
    使用特定的签名引擎。当前可用的 ed25519 和虚拟签名类型。默认值为 ed25519 。

  • –keys-file
    从文件 中读取密钥filename。

对于ed25519签名类型有效。对于ed25519此文件,每行必须包含base64编码的公钥以进行验证。

  • –keys-dir
    重新定义系统路径,在其中搜索具有已知和已撤销密钥的文件和子目录。

实例

$ ostree static-delta

        (No static deltas)

ostree-summary

名称
ostree-summary — 重新生成或查看摘要元数据文件

概述
ostree summary [–gpg-sign=KEYID] [–gpg-homedir=HOMEDIR] [–sign=KEYID] [–sign-type=ENGINE] {–update} [–add-metadata=KEY=VALUE…]

ostree summary { --view | --raw }

描述
该summary文件是存储库元数据的可选高级形式,用于描述可用分支。在一系列提交后需要手动重新生成。除此之外,这允许自动更新多个提交。

选项

  • –update,-u
    更新摘要文件。可以结合使用此选项–add-metadata将元数据字段添加到摘要中。

如果存储库配置了集合 ID,则 ostree-metadata该集合 ID 的分支也将使用包含给定元数据的新提交进行更新,如果摘要文件已签名,则该元数据将被签名。

  • –add-metadata,-m=KEY=VALUE
    指定要添加到摘要的附加元数据字段。它必须采用 KEY=VALUE格式 或作为两个单独的参数。密钥必须使用点前缀为您的组织或存储库命名。这些值必须采用 GVariant 文本格式。例如, exampleos.end-of-life “@t 1445385600”。该选项可以多次使用。

  • –view,-v
    以人类可读的格式查看摘要文件的内容。

  • –raw
    查看摘要文件的原始字节数。

  • –gpg-sign=KEYID
    用于签署摘要的 GPG 密钥 ID。

  • –gpg-homedir=HOMEDIR
    寻找钥匙圈时使用的 GPG Homedir。

  • –sign-type=ENGINE
    使用特定的签名引擎。当前可用的 ed25519 和虚拟签名类型。默认值为 ed25519 。

  • –sign=“KEY-ID”
    有:KEY-ID

for ed25519:
base64- 用于提交签名的编码密钥。

for dummy:
用作密钥的 ASCII 字符串。

实例

$ ostree summary -u

$ ostree summary -u -m key="'value'"

$ ostree summary -v

* ostree/1/1/0
    Latest Commit (4.2 MB):
      9828ab80f357459b4ab50f0629beab2ae3b67318fc3d161d10a89fae353afa90
    Timestamp (ostree.commit.timestamp): 2017-11-21T01:41:10-08
    Version (ostree.commit.version): 1.2.3

Last-Modified (ostree.summary.last-modified): 2018-01-12T22:06:38-08

ostree-prepare-root

名称
ostree-prepare-root — 将已安装根文件系统的视图更改为 ostree 部署

概述
ostree prepare-root {TARGET}

描述
ostree 的核心是在现有的挂载文件系统上运行。诸如此类的工具ostree admin deploy将创建一个可用作可引导目标的新目录。该工具设计为在 initramfs 中运行,并将“重新映射”挂载设置为该文件系统的视图。

截至最近,该工具还提供对 composefs 的可选支持,这会在底层文件系统之上创建一个独特的挂载点。

如今最常见的模式是在 initramfs 中使用 systemd。上游运送的 systemd 单元按以下方式排序: After=sysroot.mount和Before=initrd-root-fs.target

TARGET当它运行时,所提供的(通常) 安装的文件系统/sysroot将被更改,使得显示的/sysroot实际上是“部署根” - 即特定版本的子目录。以前的“物理根”,即文件系统的真正根将显示为/sysroot/sysroot.

对于/var,默认情况下会创建从部署根目录到 的绑定挂载/sysroot/var。

只读绑定挂载是在 上创建的/sysroot/usr。不可变位是在部署根上设置的,因此这为文件系统突变提供了基本保护。如果sysroot.readonly 启用该选项,则改为可写绑定挂载/sysroot/etc,而其他所有内容都以只读方式挂载。

最后,当更高级别的工具(例如 systemd)执行切换根操作时,在转换/sysroot到/真正的根之后,系统将引导到“部署”,这是一个版本化的不可变文件系统树。此后,在真实根中运行的 ostree 工具通过操作/sysroot现在的“物理根”来执行进一步的更改。

配置
/usr/lib/ostree/prepare-root.conf(或)配置 文件/etc/ostree/prepare-root.conf由ostree-prepare-root. 该文件必须存在于 initramfs 中。默认的 dracut 模块将从真实根目录(如果存在)复制它。

sysroot.readonly
布尔值;默认为false. 如果设置为true,则/sysroot挂载点将以只读方式挂载。

composefs.enabled
这可以是yes,no. maybe或 signed。默认为maybe. 如果设置为yes或 signed,则始终使用 composefs,如果不可用则引导失败。此外,如果设置为signed,如果无法通过公钥验证映像,则启动将失败。如果设置为maybe,则使用 composefs(如果支持)。

composefs.keypath
initramfs 中包含 Ed25519 公钥的文件的路径,如果 composefs.enabled设置为则使用signed。该值的默认值为 /etc/ostree/initramfs-root-binding.key。对于有效的签名引导,目标 OSTree 提交必须由该文件中的至少一个公钥签名,并且提交中列出的 commitfs 摘要必须与目标 composefs 映像匹配。

systemd
如上所述,此工具附带一个 systemd 单元文件,主要期望以这种方式调用。ostree-prepare-root.service

Composefs
ostree 的默认值是创建一个普通的硬链接文件系统树。 Composefs 支持目前处于实验阶段;有关使用它的更多信息,请参阅上游。doc/composefs.md

rofiles-fuse

名称
rofiles-fuse — 使用 FUSE 创建目录可写、文件不可变的视图

概述
rofiles-fuse SRCDIR MNTPOINT

描述
默认情况下,从 OSTree 存储库创建签出使用硬链接,这意味着对任何文件的就地更改都会损坏存储库和所有签出。如果有人希望针对这样的结帐运行任意程序,这可能会出现问题。例如,RPM%post 脚本或等效脚本。

如果想要创建从其他内容派生的树提交,则将rofiles-fuse与ostree commit --link-checkout-speedup(或底层 API)配合使用可以确保仅对新文件进行校验和。

示例:更新 OSTree 提交

ostree --repo=repo checkout foo branch-checkout # Initialize a checkout and mount, foo为分支名
mkdir mnt
rofiles-fuse branch-checkout mnt


echo somenewcontent > mnt/anewfile # Now, arbitrary changes to mnt/ are reflected in branch-checkout
mkdir mnt/anewdir
rm -rf mnt/someoriginalcontent  # 清空mnt/ 目录下其他原始文件或文件夹

fusermount -u mnt # Commit and cleanup
ostree --repo=repo commit --link-checkout-speedup -b foo -s 'Commit new content' --tree=dir=branch-checkout # foo为分支名
rm -rf mnt branch-checkout 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yusq77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值