rpm-ostree
-
Git for filesystem trees!
-
Directories
/var: mutable and shared among deployments/etc: mutable and unique for each deployment. It's copied over the next deployment-
/usr: immutable and unique for each deployment -
/sysroot: the actual raw root mount-point of the HDD, which contains all the deployments /sysroot/ostree: Holds the base ostree system/sysroot/ostree/deploy: each system version/sysroot/ostree/var: shared files/sysroot/ostree/repo: shared commit objects (to avoid duplicate files)- Package install methods
Package layering: useful for drivers, libvirt, etcFlatpak: sandboxed appsToolbox: primarily for CLI apps
status
- Show all deployments
rpm-ostree status
update
# check for updates in the base image
rpm-ostree update --check
upgrade
- A new
etcdirectory is copied over to the new system - Brand new
usrdirectories are created vardirectory is shared- Upgrade is automatically done by fedora, but you can do it manually with this command
- Updates the packages in the image
rpm-ostree upgrade
install
- Install a package as layered image on top of the base image
- Requires reboot
rpm-ostree install <package>
rebase
- Adopt a new base image
rpm-ostree rebase <branch>
rpm-ostree rebase fedora:fedora/39/x96_64/kinoite
rollback
- Rollback to a previous deployment
rpm-ostree rollback