rpm-ostree/README.md
2014-02-23 17:06:06 -05:00

60 lines
1.7 KiB
Markdown

rpm-ostree
==========
This tool takes a set of packages, and commits them to an
[OSTree](https://wiki.gnome.org/Projects/OSTree) repository. At the
moment, it is intended for use on build servers.
Using rpm-ostree
----------------
There are two levels; the core "rpm-ostree" command takes a set of
packages and commits them to an OSTree repository.
The higher level rpm-ostree-autobuilder parses a "products.json" which
generates potentially many filesystem trees. It also has code to
generate disk images and run smoketests.
Installing and setting up a repository
--------------------------------------
There are packages available in the rpm-ostree COPR; you can also
just "sudo make install" it.
Once you have that done, choose a build directory. Here we'll use
/srv/rpm-ostree.
# cd /srv/rpm-ostree
# mkdir repo
# ostree --repo=repo init --mode=archive-z2
Running rpm-ostree
------------------
The core "rpm-ostree" takes as input a "treefile". There is a demo
one in `src/demo-treefile.json`.
# rpm-ostree sometreefile.json
All this does is use yum to download RPMs from the referenced repos,
and commit the result to the OSTree repository, using the ref named by
`ref`.
You can export `/srv/rpm-ostree/repo` via any static webserver.
Running the autobuilder
-----------------------
The autobuilder instead takes as input a `products.json` which
generates multiple treefiles. Try this:
# ln -s /path/to/rpm-ostree.git/fedostree/products.json .
# rpm-ostree-autobuilder
That will automatically poll every hour for changes in the RPMs
referenced by the `products.json` file, commit them to the
`/srv/rpm-ostree/repo`, and generate cached disk images in
`/srv/rpm-ostree/images`.