English
Using modules in Fedora
**Modules** are special package groups usually representing an application, a language runtime, or a set of tools. They are available in one or **multiple streams** which usually represent a major version of a piece of software, giving you an option to choose what versions of packages you want to consume.
To simplify installation, modules usually define one or more **installation profiles** that represent a specific use case. For example a `server` or a `client` profile in a database module.
This is a quick overview how to use modules and module streams with the package manager DNF.
+
+
Module stream installation and discovery
Listing packages
Packages available to the system can be discovered by the usual commands such as `dnf search NAME`, `dnf list NAME`, or by using the `dnf repoquery QUERY` command for more complex queries. However, it is important to note that those commands will, apart from traditional packages, only list modular packages coming from already _enabled_ module stream.
Listing modules
To list modules available to your system, and to see what streams are _default_ or have been _enabled_, use the following command:
$ dnf module list
Installing packages
Packages can be installed the usual way by running the `dnf install NAME` command. Any traditional package, or a modular package coming from an _enabled_ module can be installed this way.
Packages from other module streams can be consumed by either _enabling a module_ stream and then installing individual packages, or by _installing a module_ directly.
Enabling modules
To **enable a module stream** and make its packages available for installation, run the following command:
$ dnf module enable NAME:STREAM
For example, to make Node.js 8 packages available for installation, run:
$ dnf module enable nodejs:8
Packages from enabled module streams can be then installed by the `dnf install NAME` command.
Installing modules