This commit makes it possible to *not* to use `rpm-ostree` even on systems where it is detected. This commit is fully backwards compatible with previous releases, and without changing the config file all previous behaviors are the exact same. This commit adds the `rpm_ostree` field in the `[linux]` table of the configuration, and defaults to `true`. This means Topgrade will first check if `/usr/bin/rpm-ostree` exists, and only if so then check if the user does not want to use `rpm-ostree` via the configuration. If the user *does not* want to use `rpm-ostree`, then normal operation continues checking for DNF or YUM. This makes it possible for people where `rpm-ostree` is installed, but where the system is not an `ostree` based distribtuion. This happens when people are using things like `osbuild-composer` to build images, or Cockpit with the Compose feature enabled (which uses `osbuild-composer` internally). An alternative to this commit would be to make the config field a negative such as `no_rpm_ostree`, however that goes against the norm in other fields. Closes #710
Keeping your system up to date mostly involves invoking more than a single package manager. This usually results in big shell one-liners saved in your shell history. Topgrade tries to solve this problem by detecting which tools you use and run their appropriate package managers.
Installation
Arch Linux users can use the AUR package.
On NixOS, use the topgrade package in nixpkgs.
macOS users can install topgrade via Homebrew or MacPorts.
Other systems users can either use cargo install or use the compiled binaries from the release
page. The compiled binaries contain a self-upgrading feature.
Topgrade isn't guaranteed to work on Rust versions older than the latest stable release. If you intend to install Topgrade using Cargo then you should either install Rust using rustup or use a distribution which ships the latest version of Rust, such as Arch Linux.
Usage
Just run topgrade. See the wiki for the list of things Topgrade supports
Customization
See config.example.toml for an example configuration file.
Configuration path
The configuration should be placed in the following paths depending by the operating system:
- macOS -
~/.config/topgrade.toml - Windows -
%APPDATA%/topgrade.toml - Other Unix systems -
~/.config/topgrade.toml
Remote execution
You can specify a key called remote_topgrades in the configuration file. This key should contain a
list of hostnames that have topgrade installed on them. Topgrade will execute Topgrades on these
remote hosts. To limit the execution only to specific hosts use the --remote-host-limit parameter.

