Mastodon Skip to content

rpm-ostree

The rpm-ostree module offers pseudo-declarative package and repository management using rpm-ostree.

The module first downloads the repository files from repositories declared under repos: into /etc/yum.repos.d/. The magic string %OS_VERSION% is substituted with the current VERSION_ID (major Fedora version), which can be used, for example, for pulling correct versions of repositories from Fedora’s Copr.

Then the module installs the packages declared under install: using rpm-ostree install, it removes the packages declared under remove: using rpm-ostree override remove. If there are packages declared under both install: and remove: a hybrid command rpm-ostree remove <packages> --install <packages> is used, which should allow you to switch required packages for other ones.

Additionally, the rpm-ostree module supports a temporary (waiting for rpm-ostree issue #233) fix for packages that install into /opt/. Installation for packages that install into folder names declared under optfix: are fixed using some symlinks.

Known issues

When removing certain packages, some problem probably in upstream rpm-ostree causes a depsolve issue similar to below.

Resolving dependencies...done
error: Could not depsolve transaction; 1 problem detected:
Problem: conflicting requests

Example configuration

type: rpm-ostree
repos:
- https://copr.fedorainfracloud.org/coprs/atim/starship/repo/fedora-%OS_VERSION%/atim-starship-fedora-%OS_VERSION%.repo # when including COPR repos, use the %OS_VERSION% magic string
- https://pkgs.tailscale.com/stable/fedora/tailscale.repo
install:
- python3-pip
- libadwaita
remove:
- firefox
- firefox-langpacks