Installation

It is recommended currently to only use fedostree inside a non-essential, disposable virtual machine (or a similar physical machine).

Installation instructions (inside an existing OS)

First, install the ostree package, of course; make sure you have ostree 2013.7 or newer.

	yum install ostree
  

Now, this bit of one time initialization will both create /ostree for you, as well as /ostree/deploy/fedostree.

	ostree admin os-init fedostree
  

This step tells OSTree how to find the repository you built on the server. You only need to do this once.

	ostree remote add --set=gpg-verify=false fedostree http://rpm-ostree.cloud.fedoraproject.org/repo

At this point, we have only initialized configuration. Let's start by downloading the "minimal" install (just @core):

	ostree pull fedostree fedostree/20/x86_64/base/minimal

This step extracts the root filesystem, and updates the bootloader configuration:

	ostree admin deploy --os=fedostree fedostree/20/x86_64/base/minimal

We need to do some initial setup before we actually boot the system. Copy in the storage configuration:

	cp /etc/fstab /ostree/deploy/fedostree/current/etc

And set a root password:

	chroot /ostree/deploy/fedostree/current passwd

And there is one final (manual) step: You must copy your system's kernel arguments from /boot/grub2/grub.cfg and add them to /boot/loader/entries/ostree-fedora-0.conf, on the options line. This step may be automated further in the future.

IMPORTANT NOTE: You must use selinux=0 for now.

Booting the system

Remember, at this point there is no impact on your installed system except for additional disk space in the `/boot/loader` and `/ostree` directories.

Reboot, and get a GRUB prompt. At the prompt, press `c`. Now, enter:

	insmod blscfg
	bls_import

Then press `Esc`. You should have an additional boot menu entry, named `ostree:fedora:0`. Nagivate to it and press `Enter`.

Inside the system

To upgrade, run as root

	ostree admin upgrade

Note that in our demo so far, we did not install `yum` (or even `rpm`). Getting these to work fully is the next phase of the `yum-ostree` development.

But with OSTree, it's possible to atomically transition between different complete bootable filesystem trees. Let's now try the standard-docker-io tree:

	ostree pull fedostree fedostree/20/x86_64/server/docker-io

If you look at the products.json script you can see this tree contains @core, @standard, and finally docker-io.

Like above, let's now deploy it:

	ostree admin deploy --os=fedostree fedostree/20/x86_64/server/docker-io
	systemctl reboot