ostree

OSTree
Developer Colin Walters walters@verbum.org
ostree 1
ostree Manage multiple bootable versioned filesystem trees
`ostree COMMAND OPTIONS`

## Description

OSTree is a tool for managing multiple bootable versioned filesystem trees, or just "tree" for short. In the OSTree model, operating systems no longer live in the physical "/" root directory. Instead, they parallel install to the new toplevel `/ostree` directory. Each installed system gets its own `/ostree/deploy/osname` directory.

Unlike `rpm` or `dpkg`, OSTree is only aware of complete filesystem trees. It has no built-in knowledge of what components went into creating the filesystem tree.

It is possible to use OSTree in several modes; the most basic form is to replicate pre-built trees from a build server. Usually, these pre-built trees are derived from packages. You might also be using OSTree underneath a higher level tool which computes filesystem trees locally.

It must be emphasized that OSTree only supports read-only trees. To change to a different tree (upgrade, downgrade, install software), a new tree is checked out, and a 3-way merge of configuration is performed. The currently running tree is not ever modified; the new tree will become active on a system reboot.

## Options

The following options are understood:

`--repo`

  For most commands, when run as non-root, repository is required. If `ostree` is run as root, it is assumed operations will be performed on the `/sysroot/ostree/repo` repository.

System administrators will primarily interact with OSTree via the subcommand `ostree admin`.

`admin upgrade`

  If you are replicating from a build server, this command will download the latest version for the current ref, and deploy it. Reboot the system for the changes to take effect.

`admin switch`

  Choose a different ref to track from the same remote as the current tree.

`admin deploy`

  This is a relatively low level command - takes a particular commit or revision, and sets it up for the next boot.

`config-diff`

  See changes to `/etc` as compared to the current default (from `/usr/etc`).

Both administrators and operating system builders may interact with OSTree via the regular filesystem manipulation commands.

`init`

  Initialize a new repository. Must be given the path to an existing (empty) directory. If you want to serve a repository over plain HTTP, use `archive-z2` for `--mode`

`diff`

  Concisely list differences between the given refs, without checking them out into the physical filesystem. If only one ref is provided, the parent commit will be assumed to be the diff source.

`commit`

  Given one or more trees (from the local filesystem, a tarball, or a specified revision for example), create a new commit using those contents.

`log`

  Show revision log.

`ls`

  List the contents of a given commit.

`fsck`

  Check a repository for consistency.

`remote`

  Manipulate remote archive configuration.

`rev-parse`

  Show the SHA256 corresponding to a given rev.

`show`

  Given an OSTree SHA256 checksum, display its contents.

## Exit status

On success 0 is returned, a non-zero failure code otherwise.

## Environment

`$PAGER`

  `ostree` respects the traditional pager envrionment variable.