.. Copyright Contributors to the libdnf project. This file is part of libdnf: https://github.com/rpm-software-management/libdnf/ Libdnf is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. Libdnf is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libdnf. If not, see . .. _comps_misc_ref-label: ############################## Comps Groups And Environments ############################## Description =========== Comps files are used for grouping of packages into functional groups. They are stored in repository metadata files under the ``comps.xml`` filename. There are two types of structures that can be used for grouping. The first is a `group` which is composed of lists of packages. The second one is an `environment` that is composed from the groups. Each `environment` is made of mandatory and optional groups. All mandatory groups have to be installed, so the `environment` is marked as `installed`. Optional groups are not installed by default, they have to be added using the ``--with-optional`` argument. In the `group`, there are four levels of packages: `mandatory` | These are the essential packages for the functionality of the group. | These have to be installed for the group to be considered ``installed``. `default` | These are packages installed together with mandatory packages. | They can be excluded, f.e. using the ``--exclude=PACKAGE-SPEC-N,...`` argument. `optional` | These packages are not installed by default. | They can be included using the ``--with-optional`` argument. `conditional` | These packages are brought in the transaction if their required package is to be installed. For commands operating with groups and environments, see references below. See Also ======== | :manpage:`dnf5-group(8)`, :ref:`Group command ` | :manpage:`dnf5-environment(8)`, :ref:`Environment command ` | :manpage:`dnf5-specs(7)`, :ref:`Patterns specification `