From the user perspective, modules are like release-independent package groups on independent lifecycles, providing alternative streams of content to Fedora.

List available modules

To list all available modules and their streams, run the following command:

$ dnf module list

Install a module

To install a module, use the name:stream/profile syntax, for example:

$ dnf module install nodejs:6/default

Alternatively, you can also enable a module and then install RPM packages directly:

$ dnf module enable nodejs:6
$ dnf install nodejs

Changing a stream

To change a stream of a module that has been already installed, use the installation command. For example:

$ dnf module install nodejs:9/default

Module defaults

We are currently working on system profiles — the defaults for your system. Thanks to these, you will need to be specific about the module, stream, or profile only when you need to. When implemented, all the following commands will also work:

$ dnf install nodejs            # installs a nodejs RPM package from the default stream
$ dnf module install nodejs     # installs the default profile from the default stream
$ dnf module install nodejs:9   # installs the default profile from the 9 stream