5a79ca9035
Came out of discussion in https://github.com/coreos/rpm-ostree/pull/2581 around some racy code for checking for the live commit object. The reliability of apply-live depends on the underlying commits not being garbage collected. Our diff logic is in terms of ostree commits, not the physical filesystem (this allows us to make various optimizations too). Ultimately I think we should drive some of the live-apply logic into libostree itself; we can more easily have an atomic state file instead of the two split refs. (Or perhaps what we should add to ostree is like a refs.d model where a single atomic file can refer to multiple commits) For now though let's rework the code here to write refs. We retain the file in `/run` as just a "stamp file" that signals that a deployment has had `apply-live` run. |
||
---|---|---|
.github | ||
api-doc | ||
buildutil | ||
ci | ||
completion | ||
design | ||
docs | ||
experiments-and-demos/skopeo2ostree | ||
libdnf@27ac9873ea | ||
libglnx@4c9055ac08 | ||
man | ||
packaging | ||
rust | ||
src | ||
tests | ||
.cci.jenkinsfile | ||
.dir-locals.el | ||
.editorconfig | ||
.gitmodules | ||
.vimrc | ||
autogen.sh | ||
build.rs | ||
cargo-vendor-config | ||
Cargo.lock | ||
Cargo.toml | ||
cbindgen.toml | ||
configure.ac | ||
CONTRIBUTING.md | ||
COPYING.GPL | ||
COPYING.LGPL | ||
git.mk | ||
HACKING.md | ||
LICENSE | ||
Makefile-bash.am | ||
Makefile-daemon.am | ||
Makefile-decls.am | ||
Makefile-extra.inc | ||
Makefile-lib-defines.am | ||
Makefile-lib.am | ||
Makefile-libpriv.am | ||
Makefile-man.am | ||
Makefile-rpm-ostree.am | ||
Makefile-tests.am | ||
Makefile.am | ||
Makefile.bindings | ||
OWNERS | ||
README.md | ||
RELEASE.md |
rpm-ostree: A true hybrid image/package system
rpm-ostree is a hybrid image/package system. It combines libostree as a base image format, and accepts RPM on both the client and server side, sharing code with the dnf project; specifically libdnf. and thus bringing many of the benefits of both together.
+-----------------------------------------+
| |
| rpm-ostree (daemon + CLI) |
+------> <---------+
| | status, upgrade, rollback, | |
| | pkg layering, initramfs --enable | |
| | | |
| +-----------------------------------------+ |
| |
| |
| |
+-----------------|-------------------------+ +-----------------------|-----------------+
| | | |
| libostree (image system) | | libdnf (pkg system) |
| | | |
| C API, hardlink fs trees, system repo, | | ties together libsolv (SAT solver) |
| commits, atomic bootloader swap | | with librepo (RPM repo downloads) |
| | | |
+-------------------------------------------+ +-----------------------------------------+
Features:
- Transactional, background image-based (versioned/checksummed) upgrades
- OS rollback without affecting user data (
/usr
but not/etc
,/var
) via libostree - Client-side package layering (and overrides)
- Easily make your own:
rpm-ostree compose tree
and CoreOS Assembler
Documentation
For more information, see the project documentation or the project documentation website.
License
rpm-ostree includes code licensed under GPLv2+, LGPLv2+, (Apache 2.0 OR MIT). For more information, see LICENSE.