Switching module streams

This page needs to be extended.
Switching streams is a risky operation that might not be always supported in packages, especially downgrades.

Switching to a different stream than the one that is installed on a system is a two-step process. First, the current stream needs to be reset causing it not to be enabled anymore — this will however keep its packages installed. Second, a new stream needs to be installed.

$ sudo dnf module reset NAME
$ sudo dnf module install NAME:STREAM

For example, to switch from Node.js 8 to Node.js 10, run:

$ sudo dnf module reset nodejs
$ sudo dnf module install nodejs:10

When switching RPMs that are not in a profile of stream, that is a three step process. First, the current stream needs to be reset. Second, a new stream needs to be enabled. Three, the specified RPMs are synchronized on the new stream.

$ sudo dnf module reset NAME
$ sudo dnf module enable NAME:STREAM
$ sudo dnf --allowerasing distro-sync [RPM]...

For example, to switch installed RPMs from Ruby 2.5 to Ruby 2.6, run:

$ sudo dnf module reset ruby
$ sudo dnf module enable ruby:2.6
$ sudo dnf --allowerasing distro-sync

To switch specified RPMs rubygem-mysql2 and rubygem-pg from Ruby 2.5 to Ruby 2.6, run:

$ sudo dnf --allowerasing distro-sync rubygem-mysql2 rubygem-pg

HINT: dnf module info NAME:STREAM Artifacts is helpful to check RPMs in a module.