2015-07-29 01:38:47 +03:00
OSTree
======
2012-04-19 04:36:16 +04:00
2015-07-29 01:38:47 +03:00
OSTree is a tool that combines a "git-like" model for committing and
downloading bootable filesystem trees, along with a layer for
deploying them and managing the bootloader configuration.
2012-04-19 04:36:16 +04:00
2015-07-29 01:38:47 +03:00
Traditional package managers (dpkg/rpm) build filesystem trees on the
client side. In contrast, the primary focus of OSTree is on
replicating trees composed on a server.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
**Features:**
- Atomic upgrades and rollback
- GPG signatures and "pinned TLS" support
- Support for parallel installing more than just 2 bootable roots
- Binary history on the server side
- Introspectable shared library API for build and deployment systems
Projects using OSTree
---------------------
[rpm-ostree ](https://github.com/projectatomic/rpm-ostree ) is a tool
that uses OSTree as a shared library, and supports committing RPMs
into an OSTree repository, and deploying them on the client.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
[Project Atomic ](http://www.projectatomic.io/ ) uses rpm-ostree
to provide a minimal host for Docker formatted Linux containers.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
[xdg-app ](https://github.com/alexlarsson/xdg-app ) uses OSTree
for desktop application containers.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
[GNOME Continuous ](https://wiki.gnome.org/Projects/GnomeContinuous ) is
a custom build system designed for OSTree, using
[OpenEmbedded ](http://www.openembedded.org/wiki/Main_Page ) in concert
with a custom build system to do continuous delivery from hundreds of
git repositories.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
Building
--------
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
Releases are available as GPG signed git tags, and most recent
versions support extended validation using
[git-evtag ](https://github.com/cgwalters/git-evtag ).
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
However, in order to build from a git clone, you must update the
submodules. If you're packaging OSTree and want a tarball, I
recommend using a "recursive git archive" script. There are several
2016-01-28 00:56:16 +03:00
available online;
[this code ](https://git.gnome.org/browse/ostree/tree/packaging/Makefile.dist-packaging#n11 )
2015-07-29 01:38:47 +03:00
in OSTree is an example.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
Once you have a git clone or recursive archive, building is the
same as almost every autotools project:
```
env NOCONFIGURE=1 ./autogen.sh
./configure --prefix=...
make
make install DESTDIR=/path/to/dest
```
More documentation
------------------
2015-03-11 04:51:20 +03:00
2015-07-29 01:38:47 +03:00
Some more information is available on the old wiki page:
https://wiki.gnome.org/Projects/OSTree
2015-03-11 04:51:20 +03:00
2015-07-29 01:38:47 +03:00
The intent is for that wiki page content to be migrated into Markdown
in this git repository.
2014-11-30 21:23:06 +03:00
2015-07-29 01:38:47 +03:00
Contributing
2014-12-08 01:19:42 +03:00
------------
2015-07-29 01:38:47 +03:00
See [Contributing ](CONTRIBUTING.md ).