rpm-ostree is the hybrid image/package system that provides transactional upgrades on Atomic Host. Here are some highlights from version v2017.8, including better PolicyKit integration and support for RPM file triggers.
You can test it out by rebasing to the latest Fedora Atomic Host release or downloading it.
Better PolicyKit integration
In this release, we built upon the PolicyKit support added
in the previous release to allow authentication directly
from the terminal. This means that users can now run
rpm-ostree operations as non-root and only authenticate for
the operation requested instead of resorting to sudo
:
[cloud-user@f26-tmp ~]$ rpm-ostree status
State: idle
Deployments:
* fedora-atomic:fedora/26/x86_64/atomic-host
Version: 26.120 (2017-09-05 00:05:09)
Commit: 0b0127864022dd6ffad1a183241fbd5482ef5a1642ff3c8751c2e6cae6070b1a
GPGSignature: Valid signature by E641850B77DF435378D1D7E2812A6B4B64DAB85D
[cloud-user@f26-tmp ~]$ rpm-ostree install cowsay
==== AUTHENTICATING FOR org.projectatomic.rpmostree1.install-uninstall-packages ===
Authentication is required to install and remove software
Authenticating as: Fedora (cloud-user)
Password:
==== AUTHENTICATION COMPLETE ===
Checking out tree 0b01278... done
...
Upstream patches: https://github.com/projectatomic/rpm-ostree/pull/894.
Support for RPM file triggers
When layering packages, rpm-ostree essentially re-implements
parts of the functionality of rpm
. For example, RPM
scriptlets are run in a locked down environment to ensure
minimal exposure. In this release, rpm-ostree added support
for running file trigger scriptlets.
This is necessary for successfully layering some packages,
such as vagrant
.
Upstream patches: https://github.com/projectatomic/rpm-ostree/pull/869.
Upgrade command also upgrades layered packages
Previously, the upgrade
command only layered a new
deployment if a new ostree commit was available, regardless
of whether new versions were available for layered packages.
This was fixed in this release so that upgrade
always
checks for outdated layered packages even if there are no
new commits.
Upstream issue: https://github.com/projectatomic/rpm-ostree/issues/391
Better help output
For commands that take subcommands, the help output now outputs a description of each subcommand. This is especially useful on Atomic Host, where man pages are not readily available.
[cloud-user@f26-tmp ~]$ rpm-ostree --help
Usage:
rpm-ostree [OPTION?] COMMAND
Builtin Commands:
compose Commands to compose a tree
cleanup Clear cached/pending data
db Commands to query the RPM database
deploy Deploy a specific commit
rebase Switch to a different tree
rollback Revert to the previously booted tree
status Get the version of the booted system
upgrade Perform a system upgrade
reload Reload configuration
initramfs Enable or disable local initramfs regeneration
install Download and install layered RPM packages
uninstall Remove one or more overlay packages
Help Options:
-h, --help Show help options
Application Options:
--version Print version information and exit
Upstream issue: https://github.com/projectatomic/rpm-ostree/issues/806
Other minor fixes and improvements
There are many other small improvements, here are a few:
- rpm-ostree learned about the
ostree.endoflife
metadata key, which displays an informative message when an OS stream (branch) reaches end-of-life. This will likely be used for Fedora Atomic Host.
Upstream patches: https://github.com/projectatomic/rpm-ostree/pull/889
- rpm-ostree was submitted to Coverity and received many fixes detected in the scan. No major issues were uncovered.
Upstream patches: https://github.com/projectatomic/rpm-ostree/pull/918