OSTree - "git for operating system binaries"

OSTree is a tool for managing bootable, immutable, versioned filesystem trees. It is not a package system; nor is it a tool for managing full disk images. Instead, it sits between those levels, offering a blend of the advantages (and disadvantages) of both.

You can use any build system you like to place content into it on a build server, then export an OSTree repository via static HTTP. On each client system, "ostree admin upgrade" can incrementally replicate that content, creating a new root for the next reboot. This provides fully atomic upgrades. Any changes made to /etc are propagated forwards, and all local state in /var is shared.

A key goal of the project is to complement existing package systems like RPM and Debian packages, and help further their evolution. In particular for example, RPM-OSTree (linked below) has as a goal a hybrid tree/package model, where you replicate a base tree via OSTree, and then add packages on top.

For more details about how it works, see the manual.

Quick links

Consuming build systems and products

OSTree originated as part of the GnomeContinuous research project in continuous deloyment; it uses OSTree as a native deployment mechanism, and also acts a proving ground for OSTree. If you just want to download a VM image to play around with OSTree, it's a useful starting point.

The rpm-ostree project bridges together the world of RPM with OSTree. It uses uses upstream RPM content and commits it to an OSTree repository on the server side, and there is prototype work for layering packages on the client.

(If you maintain an OSTree-using build system or OS/distribution, please list it here!)

Media and Blog posts

Other links

Projects/OSTree/RelatedProjects has a list of other projects in this area.


Projects/OSTree/OldPage (last edited 2016-06-30 13:44:39 by walters)