**What are package sets?** Package sets are *lists of packages used by Portage.* > **What do package sets define?** > Package sets define *the packages that make up the base system and those that are installed based on system administrator action.* # Static sets **What do package sets prefixed with `@selected-` refer to?** Package sets prefixed with `@selected-` refer to *member sets and their packages which the system administrator has selected to be installed.* **What are the six static package sets?** The six static package sets are: 1. `@system` - Packages required for the base system to operate as intended. This is defined by the Gentoo development team. 2. `@profile` - Packages required for the base system to operate as intended. This is defined by the Gentoo development team. 3. `@world` - A combination of the `@system`, `@profile`, and `@selected` package sets. This encompasses all packages installed on the system. 4. `@selected-packages` - Packages explicitly installed by the system administrator. This is found in `/var/lib/portage/world`. 5. `@selected-sets` - A combination of all custom package sets emerged by the system administrator. This is found in `/var/lib/portage/world_sets`. 6. `@selected` - A combination of the `@selected-packages` and `@selected-sets` package sets, which encompasses all packages intentionally installed by the system administrator. > **How do you prevent a package or package set from being added to the `@selected-` package sets?** > To prevent a package or package set from being added to the `@selected-` package sets, *pass the `--oneshot` option when calling `emerge`.* # Dynamic sets **What are dynamic package sets based on?** Dynamic sets are based on *the state of the package database or the type of packages installed on the system.* > **Can dynamic package sets be used to define what should be installed?** > *No*, dynamic package sets can't be used to define what should be installed. > > **Where are the dynamic package sets listed?** > The dynamic package sets are listed *in the `/usr/share/portage/config/sets/portage.conf` file.* > > **Are they intended to be modified by the system administrator?** > *No*, they aren't intended to be modified by the system administrator. > > **What are the twelve dynamic package sets?** > The twelve dynamic package sets are: > 1. `@changed-deps` - Packages that have changed dependencies. > 2. `@deprecated-live-rebuild` - The older way to get the set of live packages. > 3. `@downgrade` - Packages that have an installed version higher than the highest visible ebuild version. > 4. `@installed` - All installed packages. > 5. `@live-rebuild` - Live (category/package-9999) packages. > 6. `@module-rebuild` - Packages that own files in `/lib/modules`, or out of kernel modules. > 7. `@preserved-rebuild` - Packages that are using preserved libraries. > 8. `@rebuilt-binaries` - Binary packages that can be replaced with packages that have been rebuilt. > 9. `@security` - Packages for which there's a new Gentoo Linux Security Advisory (GLSA). > 10. `@unavailable` - Packages that don't have an ebuild. > 11. `@unavailable-binaries` - Packages that don't have a binary package. > 12. `@x11-module-rebuild` - Packages that own files inside `/usr/lib/xorg/modules` with the exception of the package that owns `/usr/bin/Xorg`. # Custom sets **What are the two types of custom package sets and where they're defined?** The two types of custom package sets and where they're defined are: 1. Static - `/etc/portage/sets`. 2. Dynamic - `/etc/portage/sets.conf`. ... # Installing a set **How do you install a package set with the `emerge` command?** To install a package set with the `emerge` command, *run:* ```bash $ emerge -p @<package set> ``` **How do you list the available package sets?** To list the available package sets, *run:* ```bash $ emerge --list-sets ``` # Packages within a set **How can you list the available packages in a package set?** To list the available packages in a package set, *run:* ```bash $ emerge -pqeO @<package set> $ emerge --pretend --quiet --emptytree --nodeps @<package set> $ pquery --pkgset <package set> $ eix --compact @<package set> $ eix @<package set> $ equery list @<package set> ``` ...