rpm-ostree --help
Usage:
  rpm-ostree [OPTION…] COMMAND

Builtin Commands:
  apply-live             Apply pending deployment changes to booted deployment
  cancel                 Cancel an active transaction
  cleanup                Clear cached/pending data
  compose                Commands to compose a tree
  db                     Commands to query the RPM database
  deploy                 Deploy a specific commit
  finalize-deployment    Unset the finalization locking state of the staged deployment and reboot
  initramfs              Enable or disable local initramfs regeneration
  initramfs-etc          Add files to the initramfs
  install                Overlay additional packages
  kargs                  Query or modify kernel arguments
  override               Manage base package overrides
  rebase                 Switch to a different tree
  refresh-md             Generate rpm repo metadata
  reload                 Reload configuration
  reset                  Remove all mutations
  rollback               Revert to the previously booted tree
  search                 Search for packages
  status                 Get the version of the booted system
  uninstall              Remove overlayed additional packages
  upgrade                Perform a system upgrade
  usroverlay             Apply a transient overlayfs to /usr

Help Options:
  -h, --help       Show help options

Application Options:
  --version        Print version information and exit
  -q, --quiet      Avoid printing most informational messages

rpm-ostree apply-live --help
Usage: rpm-ostree [OPTIONS]

Options:
      --target <TARGET>    Target provided commit instead of pending deployment
      --reset              Reset back to booted commit
      --allow-replacement  Allow replacement of packages/files (default is pure additive)
  -h, --help               Print help
rpm-ostree cancel --help
Usage:
  rpm-ostree cancel [OPTION…]

Cancel an active transaction

Help Options:
  -h, --help            Show help options

Application Options:
  --sysroot=SYSROOT     Use system root SYSROOT (default: /)
  --peer                Force a peer-to-peer connection instead of using the system message bus
  --version             Print version information and exit
  -q, --quiet           Avoid printing most informational messages

rpm-ostree cleanup --help
Usage:
  rpm-ostree cleanup [OPTION…]

Clear cached/pending data

Help Options:
  -h, --help                Show help options

Application Options:
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -b, --base                Clear temporary files; will leave deployments unchanged
  -p, --pending             Remove pending deployment
  -r, --rollback            Remove rollback deployment
  -m, --repomd              Delete cached rpm repo metadata
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

rpm-ostree db --help
Usage:
  rpm-ostree db [OPTION…] COMMAND

Commands to query the RPM database

Builtin "db" Commands:
  diff                   Show package changes between two commits
  list                   List packages within commits
  version                Show rpmdb version of packages within the commits

Help Options:
  -h, --help       Show help options

Application Options:
  --version        Print version information and exit
  -q, --quiet      Avoid printing most informational messages

rpm-ostree db dif --help
Usage:
  rpm-ostree db [OPTION…] COMMAND

Commands to query the RPM database

Builtin "db" Commands:
  diff                   Show package changes between two commits
  list                   List packages within commits
  version                Show rpmdb version of packages within the commits

Help Options:
  -h, --help       Show help options

Application Options:
  --version        Print version information and exit
  -q, --quiet      Avoid printing most informational messages

rpm-ostree db list --help
Usage:
  rpm-ostree db list [OPTION…] REV... [PREFIX-PKGNAME...]

List packages within commits

Help Options:
  -h, --help           Show help options

Application Options:
  -r, --repo=PATH      Path to OSTree repository (defaults to /sysroot/ostree/repo)
  -a, --advisories     Also list advisories
  --version            Print version information and exit
  -q, --quiet          Avoid printing most informational messages

rpm-ostree db version --help
Usage:
  rpm-ostree db version [OPTION…] COMMIT...

Show rpmdb version of packages within the commits

Help Options:
  -h, --help          Show help options

Application Options:
  -r, --repo=PATH     Path to OSTree repository (defaults to /sysroot/ostree/repo)
  --version           Print version information and exit
  -q, --quiet         Avoid printing most informational messages

rpm-ostree deploy --help
Usage:
  rpm-ostree deploy [OPTION…] REVISION

Deploy a specific commit

Help Options:
  -h, --help                       Show help options

Application Options:
  --stateroot=STATEROOT            Operate on provided STATEROOT
  -r, --reboot                     Initiate a reboot after operation is complete
  --preview                        Just preview package differences
  -C, --cache-only                 Do not download latest ostree and RPM data
  --download-only                  Just download latest ostree and RPM data, don't deploy
  --skip-branch-check              Do not check if commit belongs on the same branch
  --lock-finalization              Prevent automatic deployment finalization on shutdown
  --disallow-downgrade             Forbid deployment of chronologically older trees
  --unchanged-exit-77              If no new deployment made, exit 77
  --register-driver=DRIVERNAME     Register the calling agent as the driver for updates; if REVISION is an empty string, register driver without deploying
  --bypass-driver                  Force a deploy even if an updates driver is registered
  --sysroot=SYSROOT                Use system root SYSROOT (default: /)
  --peer                           Force a peer-to-peer connection instead of using the system message bus
  --install=PKG                    Overlay additional package
  --uninstall=PKG                  Remove overlayed additional package
  --version                        Print version information and exit
  -q, --quiet                      Avoid printing most informational messages

$ rpm-ostree finalize-deployment --help
Usage:
  rpm-ostree finalize-deployment [OPTION…] CHECKSUM

Unset the finalization locking state of the staged deployment and reboot

Help Options:
  -h, --help                   Show help options

Application Options:
  --stateroot=STATEROOT        Operate on provided STATEROOT
  --allow-missing-checksum     Don't error out if no expected checksum is provided
  --allow-unlocked             Don't error out if staged deployment wasn't locked
  --sysroot=SYSROOT            Use system root SYSROOT (default: /)
  --peer                       Force a peer-to-peer connection instead of using the system message bus
  --version                    Print version information and exit
  -q, --quiet                  Avoid printing most informational messages

$ rpm-ostree initramfs --help
Usage:
  rpm-ostree initramfs [OPTION…]

Enable or disable local initramfs regeneration

Help Options:
  -h, --help                Show help options

Application Options:
  --stateroot=STATEROOT     Operate on provided STATEROOT
  --enable                  Enable regenerating initramfs locally using dracut
  --arg=ARG                 Append ARG to the dracut arguments
  --disable                 Disable regenerating initramfs locally
  -r, --reboot              Initiate a reboot after operation is complete
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree initramfs-etc --help
Usage:
  rpm-ostree initramfs-etc [OPTION…]

Add files to the initramfs

Help Options:
  -h, --help                Show help options

Application Options:
  --stateroot=STATEROOT     Operate on provided STATEROOT
  --force-sync              Deploy a new tree with the latest tracked /etc files
  --track=FILE              Track root /etc file
  --untrack=FILE            Untrack root /etc file
  --untrack-all             Untrack all root /etc files
  -r, --reboot              Initiate a reboot after operation is complete
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  --unchanged-exit-77       If no new deployment made, exit 77
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree install --help
Usage:
  rpm-ostree install [OPTION…] PACKAGE [PACKAGE...]

Overlay additional packages

Help Options:
  -h, --help                Show help options

Application Options:
  --uninstall=PKG           Remove overlayed additional package
  -C, --cache-only          Do not download latest ostree and RPM data
  --download-only           Just download latest ostree and RPM data, don't deploy
  -A, --apply-live          Apply changes to both pending deployment and running filesystem tree
  --force-replacefiles      Allow package to replace files from other packages
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after operation is complete
  -n, --dry-run             Exit after printing the transaction
  -y, --assumeyes           Auto-confirm interactive prompts for non-security questions
  --allow-inactive          Allow inactive package requests
  --idempotent              Do nothing if package already (un)installed
  --unchanged-exit-77       If no overlays were changed, exit 77
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  --enablerepo              Enable the repository based on the repo id. Is only supported in a container build.
  --disablerepo             Only disabling all (*) repositories is supported currently. Is only supported in a container build.
  --releasever              Set the releasever. Is only supported in a container build.
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree kargs --help
Usage:
  rpm-ostree kargs [OPTION…]

Query or modify kernel arguments

Help Options:
  -h, --help                        Show help options

Application Options:
  --stateroot=STATEROOT             Operate on provided STATEROOT
  --deploy-index=INDEX              Modify the kernel args from a specific deployment based on index. Index is in the form of a number (e.g. 0 means the first deployment in the list)
  --reboot                          Initiate a reboot after operation is complete
  --append=KEY=VALUE                Append kernel argument; useful with e.g. console= that can be used multiple times. empty value for an argument is allowed
  --replace=KEY=VALUE=NEWVALUE      Replace existing kernel argument, the user is also able to replace an argument with KEY=VALUE if only one value exist for that argument 
  --delete=KEY=VALUE                Delete a specific kernel argument key/val pair or an entire argument with a single key/value pair
  --append-if-missing=KEY=VALUE     Like --append, but does nothing if the key is already present
  --delete-if-present=KEY=VALUE     Like --delete, but does nothing if the key is already missing
  --unchanged-exit-77               If no kernel args changed, exit 77
  --import-proc-cmdline             Instead of modifying old kernel arguments, we modify args from current /proc/cmdline (the booted deployment)
  --editor                          Use an editor to modify the kernel arguments
  --lock-finalization               Prevent automatic deployment finalization on shutdown
  --sysroot=SYSROOT                 Use system root SYSROOT (default: /)
  --peer                            Force a peer-to-peer connection instead of using the system message bus
  --version                         Print version information and exit
  -q, --quiet                       Avoid printing most informational messages

$ rpm-ostree override --help
Usage:
  rpm-ostree override [OPTION…] COMMAND

Manage base package overrides

Builtin "override" Commands:
  remove                 Remove packages from the base layer
  replace                Replace packages in the base layer
  reset                  Reset currently active package overrides

Help Options:
  -h, --help       Show help options

Application Options:
  --version        Print version information and exit
  -q, --quiet      Avoid printing most informational messages

$ rpm-ostree override remove --help
Usage:
  rpm-ostree override remove [OPTION…] PACKAGE [PACKAGE...]

Remove packages from the base layer

Help Options:
  -h, --help                Show help options

Application Options:
  --replace=RPM             Replace a package
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after operation is complete
  -n, --dry-run             Exit after printing the transaction
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  -C, --cache-only          Only operate on cached data
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --install=PKG             Overlay additional package
  --uninstall=PKG           Remove overlayed additional package
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree override replace --help
Usage:
  rpm-ostree override replace [OPTION…] PACKAGE [PACKAGE...]

Replace packages in the base layer

Help Options:
  -h, --help                Show help options

Application Options:
  --remove=PKG              Remove a package
  --stateroot=STATEROOT     Operate on provided STATEROOT
  --reboot                  Initiate a reboot after operation is complete
  -n, --dry-run             Exit after printing the transaction
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  -C, --cache-only          Only operate on cached data
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --install=PKG             Overlay additional package
  --uninstall=PKG           Remove overlayed additional package
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree override reset --help
Usage:
  rpm-ostree override reset [OPTION…] PACKAGE [PACKAGE...]

Reset currently active package overrides

Help Options:
  -h, --help                Show help options

Application Options:
  -a, --all                 Reset all active overrides
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after operation is complete
  -n, --dry-run             Exit after printing the transaction
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  -C, --cache-only          Only operate on cached data
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --install=PKG             Overlay additional package
  --uninstall=PKG           Remove overlayed additional package
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree rebase --help
Usage:
  rpm-ostree rebase [OPTION…] REFSPEC [REVISION]

Switch to a different tree

Help Options:
  -h, --help                      Show help options

Application Options:
  --stateroot=STATEROOT           Operate on provided STATEROOT
  -b, --branch=BRANCH             Rebase to branch BRANCH; use --remote to change remote as well
  -m, --remote=REMOTE             Rebase to current branch name using REMOTE; may also be combined with --branch
  -r, --reboot                    Initiate a reboot after operation is complete
  --skip-purge                    Keep previous refspec after rebase
  -C, --cache-only                Do not download latest ostree and RPM data
  --download-only                 Just download latest ostree and RPM data, don't deploy
  --custom-origin-description     Human-readable description of custom origin
  --custom-origin-url             Machine-readable description of custom origin
  --experimental                  Enable experimental features
  --disallow-downgrade            Forbid deployment of chronologically older trees
  --lock-finalization             Prevent automatic deployment finalization on shutdown
  --bypass-driver                 Force a rebase even if an updates driver is registered
  --sysroot=SYSROOT               Use system root SYSROOT (default: /)
  --peer                          Force a peer-to-peer connection instead of using the system message bus
  --install=PKG                   Overlay additional package
  --uninstall=PKG                 Remove overlayed additional package
  --version                       Print version information and exit
  -q, --quiet                     Avoid printing most informational messages

$ rpm-ostree refresh-md --help
Usage:
  rpm-ostree refresh-md [OPTION…]

Generate rpm repo metadata

Help Options:
  -h, --help                Show help options

Application Options:
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -f, --force               Expire current cache
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree reload --help
Usage:
  rpm-ostree reload [OPTION…]

Reload configuration

Help Options:
  -h, --help            Show help options

Application Options:
  --sysroot=SYSROOT     Use system root SYSROOT (default: /)
  --peer                Force a peer-to-peer connection instead of using the system message bus
  --version             Print version information and exit
  -q, --quiet           Avoid printing most informational messages

$ rpm-ostree reset --help
Usage:
  rpm-ostree reset [OPTION…]

Remove all mutations

Help Options:
  -h, --help                Show help options

Application Options:
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after transaction is complete
  -l, --overlays            Remove all overlayed packages
  -o, --overrides           Remove all overrides
  -i, --initramfs           Stop regenerating initramfs or tracking files
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --install=PKG             Overlay additional package
  --uninstall=PKG           Remove overlayed additional package
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree rollback --help
Usage:
  rpm-ostree rollback [OPTION…]

Revert to the previously booted tree

Help Options:
  -h, --help            Show help options

Application Options:
  -r, --reboot          Initiate a reboot after operation is complete
  --sysroot=SYSROOT     Use system root SYSROOT (default: /)
  --peer                Force a peer-to-peer connection instead of using the system message bus
  --version             Print version information and exit
  -q, --quiet           Avoid printing most informational messages

$ rpm-ostree search --help
Usage:
  rpm-ostree search [OPTION…] PACKAGE [PACKAGE...]

Search for packages

Help Options:
  -h, --help                Show help options

Application Options:
  --uninstall=PKG           Remove overlayed additional package
  -C, --cache-only          Do not download latest ostree and RPM data
  --download-only           Just download latest ostree and RPM data, don't deploy
  -A, --apply-live          Apply changes to both pending deployment and running filesystem tree
  --force-replacefiles      Allow package to replace files from other packages
  --install=PKG             Overlay additional package
  --all                     Remove all overlayed additional packages
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after operation is complete
  -n, --dry-run             Exit after printing the transaction
  -y, --assumeyes           Auto-confirm interactive prompts for non-security questions
  --allow-inactive          Allow inactive package requests
  --idempotent              Do nothing if package already (un)installed
  --unchanged-exit-77       If no overlays were changed, exit 77
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  --enablerepo              Enable the repository based on the repo id. Is only supported in a container build.
  --disablerepo             Only disabling all (*) repositories is supported currently. Is only supported in a container build.
  --releasever              Set the releasever. Is only supported in a container build.
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree status --help
Usage:
  rpm-ostree status [OPTION…]

Get the version of the booted system

Help Options:
  -h, --help                    Show help options

Application Options:
  -v, --verbose                 Print additional fields (e.g. StateRoot); implies -a
  -a, --advisories              Expand advisories listing
  --json                        Output JSON
  -J, --jsonpath=EXPRESSION     Filter JSONPath expression
  -b, --booted                  Only print the booted deployment
  --pending-exit-77             If pending deployment available, exit 77
  --sysroot=SYSROOT             Use system root SYSROOT (default: /)
  --peer                        Force a peer-to-peer connection instead of using the system message bus
  --version                     Print version information and exit
  -q, --quiet                   Avoid printing most informational messages

$ rpm-ostree status
State: idle
Deployments:
  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-nvidia-open:stable
                   Digest: sha256:1b8a74d699d5b15ab762fd8e6c3ce9b3b6838926567ff845ade678d3d083f1bb
                  Version: 42.20250817 (2025-08-18T06:31:34Z)
                     Diff: 333 upgraded, 3 removed, 1 added

● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-nvidia-open:stable
                   Digest: sha256:7b58b40ec5f3e8ab59dbc27634e6c60dd859a7fa97ce69e1516c804a4959a4ed
                  Version: 42.20250809 (2025-08-10T02:07:12Z)
                Initramfs: regenerate

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-nvidia-open:stable
                   Digest: sha256:e92a5b31766cb683eb11b81475af846d7f1576bad63f2dd25dcce0b60bfa1469
                  Version: 42.20250804 (2025-08-04T05:42:59Z)
                Initramfs: regenerate
$ rpm-ostree uninstall--help
$ rpm-ostree uninstall --help
Usage:
  rpm-ostree uninstall [OPTION…] PACKAGE [PACKAGE...]

Remove overlayed additional packages

Help Options:
  -h, --help                Show help options

Application Options:
  --install=PKG             Overlay additional package
  --all                     Remove all overlayed additional packages
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after operation is complete
  -n, --dry-run             Exit after printing the transaction
  -y, --assumeyes           Auto-confirm interactive prompts for non-security questions
  --allow-inactive          Allow inactive package requests
  --idempotent              Do nothing if package already (un)installed
  --unchanged-exit-77       If no overlays were changed, exit 77
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  --enablerepo              Enable the repository based on the repo id. Is only supported in a container build.
  --disablerepo             Only disabling all (*) repositories is supported currently. Is only supported in a container build.
  --releasever              Set the releasever. Is only supported in a container build.
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree upgrade --help
Usage:
  rpm-ostree upgrade [OPTION…]

Perform a system upgrade

Help Options:
  -h, --help                Show help options

Application Options:
  --stateroot=STATEROOT     Operate on provided STATEROOT
  -r, --reboot              Initiate a reboot after operation is complete
  --allow-downgrade         Permit deployment of chronologically older trees
  --preview                 Just preview package differences (implies --unchanged-exit-77)
  --check                   Just check if an upgrade is available (implies --unchanged-exit-77)
  -C, --cache-only          Do not download latest ostree and RPM data
  --download-only           Just download latest ostree and RPM data, don't deploy
  --unchanged-exit-77       If no new deployment made, exit 77
  --lock-finalization       Prevent automatic deployment finalization on shutdown
  --bypass-driver           Force an upgrade even if an updates driver is registered
  --sysroot=SYSROOT         Use system root SYSROOT (default: /)
  --peer                    Force a peer-to-peer connection instead of using the system message bus
  --install=PKG             Overlay additional package
  --uninstall=PKG           Remove overlayed additional package
  --version                 Print version information and exit
  -q, --quiet               Avoid printing most informational messages

$ rpm-ostree usroverlay --help
Usage:
  ostree admin unlock [OPTION…]

Make the current deployment mutable (as a hotfix or development)

Help Options:
  -h, --help         Show help options

Application Options:
  --sysroot=PATH     Create a new OSTree sysroot at PATH
  --hotfix           Retain changes across reboots
  --transient        Mount overlayfs read-only by default
  -v, --verbose      Print debug information during command processing
  --version          Print version information and exit

$ rpm-ostree compose --help
Usage:
  rpm-ostree compose [OPTION…] COMMAND

Commands to compose a tree

Builtin "compose" Commands:
  build-chunked-oci      Generate a "chunked" OCI archive from an input rootfs
  commit                 Commit a target path to an OSTree repository
  container-encapsulate  Generate a reproducible "chunked" container image (using RPM data) from an OSTree commit
  extensions             Download RPM packages guaranteed to depsolve with a base OSTree
  image                  Generate a reproducible "chunked" container image (using RPM data) from a treefile
  install                Install packages into a target path
  postprocess            Perform final postprocessing on an installation root
  rootfs                 Generate a root filesystem tree from a treefile
  tree                   Process a "treefile"; install packages and commit the result to an OSTree repository

Help Options:
  -h, --help       Show help options

Application Options:
  --version        Print version information and exit
  -q, --quiet      Avoid printing most informational messages

$ rpm-ostree compose build-chunked-oci --help
Generate a "chunked" OCI archive from an input rootfs

Usage: rpm-ostree [OPTIONS] --bootc --output <OUTPUT>

Options:
      --rootfs <ROOTFS>
          Path to the source root filesystem tree
      --from <FROM>
          Use the provided image (in containers-storage)
      --bootc
          If set, configure the output OCI image to be a bootc container. At the current time this option is required
      --format-version <FORMAT_VERSION>
          The format version.  Version `1` creates OCI (tar) layers sparsely, meaning parent directories may be omitted from the tar stream.  Version `2` ensures that all parent directories in all layers are present in the tar stream.  Default value is `1` for backward compatibility [default: 1]
      --max-layers <MAX_LAYERS>
          Maximum number of layers to use. The default value of 64 is chosen to balance splitting up an image into sufficient chunks versus compatibility with older OCI runtimes that may have problems with larger number of layers. However, with recent podman 5 for example with newer overlayfs, it works to use over 200 layers
      --reference <REFERENCE>
          Tag to use for output image, or `latest` if unset [default: latest]
      --output <OUTPUT>
          Output image reference, in TRANSPORT:TARGET syntax. For example, `containers-storage:localhost/exampleos` or `oci:/path/to/ocidir`
  -h, --help
          Print help
$ rpm-ostree compose commit --help
Usage:
  rpm-ostree compose commit [OPTION…] TREEFILE ROOTFS

Commit a target path to an OSTree repository

Help Options:
  -h, --help                          Show help options

Application Options:
  --unified-core                      Use new "unified core" codepath
  -r, --repo=REPO                     Path to OSTree repository
  --layer-repo=REPO                   Path to OSTree repository for ostree-layers and ostree-override-layers
  --add-metadata-string=KEY=VALUE     Append given key and value (in string format) to metadata
  --add-metadata-from-json=JSON       Parse the given JSON file as object, convert to GVariant, append to OSTree commit
  --write-commitid-to=FILE            File to write the composed commitid to instead of updating the ref
  --write-composejson-to=FILE         Write JSON to FILE containing information about the compose run
  --no-parent                         Always commit without a parent
  --parent=REV                        Commit with specific parent
  --version                           Print version information and exit
  -q, --quiet                         Avoid printing most informational messages

$ rpm-ostree compose container-encapsulate --help
Usage: container-encapsulate [OPTIONS] --repo <REPO> <OSTREE_REF> <IMGREF>

Arguments:
  <OSTREE_REF>  OSTree branch name or checksum
  <IMGREF>      Image reference, e.g. registry:quay.io/exampleos/exampleos:latest

Options:
      --repo <REPO>
          
  -l, --label <label>
          Additional labels for the container
      --image-config <IMAGE_CONFIG>
          Path to container image configuration in JSON format.  This is the `config` field of https://github.com/opencontainers/image-spec/blob/main/config.md
      --arch <ARCH>
          Override the architecture
      --copymeta <copymeta>
          Propagate an OSTree commit metadata key to container label
      --copymeta-opt <copymeta-opt>
          Propagate an optionally-present OSTree commit metadata key to container label
      --cmd <CMD>
          Corresponds to the Dockerfile `CMD` instruction
      --max-layers <MAX_LAYERS>
          Maximum number of container image layers
      --format-version <FORMAT_VERSION>
          The encapsulated container format version; must be 1 or 2 [default: 1]
      --write-contentmeta-json <WRITE_CONTENTMETA_JSON>
          Output content metadata as JSON
      --compare-with-build <compare-with-build>
          Compare OCI layers of current build with another(imgref)
      --previous-build-manifest <PREVIOUS_BUILD_MANIFEST>
          Prevent a change in packing structure by taking a previous build metadata (oci config and manifest)
  -h, --help
          Print help
$ rpm-ostree compose extensions --help
Usage:
  rpm-ostree compose extensions [OPTION…] TREEFILE EXTYAML

Download RPM packages guaranteed to depsolve with a base OSTree

Help Options:
  -h, --help                  Show help options

Application Options:
  --unified-core              Use new "unified core" codepath
  -r, --repo=REPO             Path to OSTree repository
  --layer-repo=REPO           Path to OSTree repository for ostree-layers and ostree-override-layers
  --output-dir=PATH           Path to extensions output directory
  --base-rev=REV              Base OSTree revision
  --cachedir=CACHEDIR         Cached state
  --rootfs=ROOTFS             Path to already present rootfs
  --touch-if-changed=FILE     Update the modification time on FILE if new extensions were downloaded
  --version                   Print version information and exit
  -q, --quiet                 Avoid printing most informational messages

$ rpm-ostree compose image --help
Usage: baseimage [OPTIONS] <MANIFEST> <OUTPUT>

Arguments:
  <MANIFEST>
          Path to the manifest file

  <OUTPUT>
          Target path to write

Options:
      --cachedir <CACHEDIR>
          Directory to use for caching downloaded packages and other data

      --source-root <SOURCE_ROOT>
          Rootfs to use for resolving package system configuration, such as the yum repository configuration, releasever, etc

      --authfile <AUTHFILE>
          Container authentication file

      --layer-repo <LAYER_REPO>
          OSTree repository to use for `ostree-layers` and `ostree-override-layers`

  -i, --initialize
          Do not query previous image in target location; use this for the first build

      --initialize-mode <INITIALIZE_MODE>
          Control conditions under which the image is written
          
          [default: query]

          Possible values:
          - query:         Require the image to already exist.  For backwards compatibility reasons, this is the default
          - always:        Always overwrite the target image, even if it already exists and there were no changes
          - never:         Error out if the target image does not already exist
          - if-not-exists: Initialize if the target image does not already exist

      --format <FORMAT>
          [default: ociarchive]
          [possible values: ociarchive, oci, registry]

      --force-nocache
          Force a build

      --offline
          Operate only on cached data, do not access network repositories

      --write-lockfile-to <WRITE_LOCKFILE_TO>
          Path to write a JSON-formatted lockfile

      --lockfile <LOCKFILES>
          JSON-formatted lockfile; can be specified multiple times

      --lockfile-strict
          With --lockfile, only allow installing locked packages

  -l, --label <label>
          Additional labels for the container image, in KEY=VALUE format

      --image-config <IMAGE_CONFIG>
          Path to container image configuration in JSON format.  This is the `config` field of https://github.com/opencontainers/image-spec/blob/main/config.md

      --touch-if-changed <TOUCH_IF_CHANGED>
          Update the timestamp or create this file on changes

      --copy-retry-times <COPY_RETRY_TIMES>
          Number of times to retry copying an image to remote destination (e.g. registry)

      --max-layers <MAX_LAYERS>
          Maximum number of layers to use. The default value of 64 is chosen to balance splitting up an image into sufficient chunks versus compatibility with older OCI runtimes that may have problems with larger number of layers. However, with recent podman 5 for example with newer overlayfs, it works to use over 200 layers

  -h, --help
          Print help (see a summary with '-h')
$ rpm-ostree compose install --help
Usage:
  rpm-ostree compose install [OPTION…] TREEFILE DESTDIR

Install packages into a target path

Help Options:
  -h, --help                      Show help options

Application Options:
  --unified-core                  Use new "unified core" codepath
  -r, --repo=REPO                 Path to OSTree repository
  --layer-repo=REPO               Path to OSTree repository for ostree-layers and ostree-override-layers
  --force-nocache                 Always create a new OSTree commit, even if nothing appears to have changed
  --cache-only                    Assume cache is present, do not attempt to update it
  --cachedir=CACHEDIR             Cached state
  --source-root=PATH              Rootfs to use for configuring libdnf, such as releasever, dnf variables, and input rpm-md repositories.
  --download-only                 Like --dry-run, but download and import RPMs as well; requires --cachedir
  --download-only-rpms            Like --dry-run, but download RPMs as well; requires --cachedir
  --proxy=PROXY                   HTTP proxy
  --dry-run                       Just print the transaction and exit
  --print-only                    Just expand any includes and print treefile
  --disable-selinux               Disable SELinux labeling, even if manifest enables it
  --touch-if-changed=FILE         Update the modification time on FILE if a new commit was created
  --previous-commit=COMMIT        Use this commit for change detection
  --previous-inputhash=DIGEST     Use this input hash for change detection
  --previous-version=VERSION      Use this version number for automatic version numbering
  --workdir=WORKDIR               Working directory
  --postprocess                   Also run default postprocessing
  --ex-write-lockfile-to=FILE     Write lockfile to FILE
  --ex-lockfile=FILE              Read lockfile from FILE
  --ex-lockfile-strict            With --ex-lockfile, only allow installing locked packages
  --version                       Print version information and exit
  -q, --quiet                     Avoid printing most informational messages

$ rpm-ostree compose postprocess --help
Usage:
  rpm-ostree compose postprocess [OPTION…] ROOTFS [TREEFILE]

Perform final postprocessing on an installation root

Help Options:
  -h, --help         Show help options

Application Options:
  --unified-core     Use new "unified core" codepath
  --version          Print version information and exit
  -q, --quiet        Avoid printing most informational messages

$ rpm-ostree compose rootfs --help
Generate a filesystem tree from an input manifest. This can then be copied into e.g. a `FROM scratch` container image build

Usage: rpm-ostree [OPTIONS] <MANIFEST> <DEST>

Arguments:
  <MANIFEST>
          Path to the input manifest

  <DEST>
          Path to the target root filesystem tree

Options:
      --cachedir <CACHEDIR>
          Directory to use for caching downloaded packages and other data

      --source-root <SOURCE_ROOT>
          Source root for package system configuration

      --source-root-rw <SOURCE_ROOT_RW>
          Rootfs to use for resolving package system configuration, such as the yum repository configuration, releasever, etc.
          
          The source root may be mutated to work around bugs.

  -h, --help
          Print help (see a summary with '-h')
$ rpm-ostree compose tree --help
Usage:
  rpm-ostree compose tree [OPTION…] TREEFILE

Process a "treefile"; install packages and commit the result to an OSTree repository

Help Options:
  -h, --help                          Show help options

Application Options:
  --unified-core                      Use new "unified core" codepath
  -r, --repo=REPO                     Path to OSTree repository
  --layer-repo=REPO                   Path to OSTree repository for ostree-layers and ostree-override-layers
  --force-nocache                     Always create a new OSTree commit, even if nothing appears to have changed
  --cache-only                        Assume cache is present, do not attempt to update it
  --cachedir=CACHEDIR                 Cached state
  --source-root=PATH                  Rootfs to use for configuring libdnf, such as releasever, dnf variables, and input rpm-md repositories.
  --download-only                     Like --dry-run, but download and import RPMs as well; requires --cachedir
  --download-only-rpms                Like --dry-run, but download RPMs as well; requires --cachedir
  --proxy=PROXY                       HTTP proxy
  --dry-run                           Just print the transaction and exit
  --print-only                        Just expand any includes and print treefile
  --disable-selinux                   Disable SELinux labeling, even if manifest enables it
  --touch-if-changed=FILE             Update the modification time on FILE if a new commit was created
  --previous-commit=COMMIT            Use this commit for change detection
  --previous-inputhash=DIGEST         Use this input hash for change detection
  --previous-version=VERSION          Use this version number for automatic version numbering
  --workdir=WORKDIR                   Working directory
  --postprocess                       Also run default postprocessing
  --ex-write-lockfile-to=FILE         Write lockfile to FILE
  --ex-lockfile=FILE                  Read lockfile from FILE
  --ex-lockfile-strict                With --ex-lockfile, only allow installing locked packages
  --add-metadata-string=KEY=VALUE     Append given key and value (in string format) to metadata
  --add-metadata-from-json=JSON       Parse the given JSON file as object, convert to GVariant, append to OSTree commit
  --write-commitid-to=FILE            File to write the composed commitid to instead of updating the ref
  --write-composejson-to=FILE         Write JSON to FILE containing information about the compose run
  --no-parent                         Always commit without a parent
  --parent=REV                        Commit with specific parent
  --version                           Print version information and exit
  -q, --quiet                         Avoid printing most informational messages

