USE flags are keywords that embody support and dependency-information for a certain concept. They are a core feature of Gentoo, and a good understanding of how to deal with them is needed for administering a Gentoo system.
Basic concepts on how to implement USE flags can be found in the Handbook.
Declaring USE flags
The default set of USE flags is defined by the selected profile. Changing them can be done in /etc/portage/make.conf and/or /etc/portage/package.use. For details see the Using USE flags section of the amd64 Handbook.
To see which USE flags are presently enabled:
portageq envvar USE | xargs -n 1
To check if a certain USE flag is activated and which packages use it, run:
euse -I <use_flag>
eix --installed-with-use <use_flag>
<use_flag> with the USE flag to be checked.
Emerge command options
The emerge command has some USE flag related options like:
- emerge --changed-use (-U)
- emerge --complete-graph-if-new-use < y | n >
- emerge --newuse (-N)
For details see man 1 emerge.
Some tools are available for analyzing and managing USE flags:
- quse - for details see man 1 quse
- equery hasuse (USE flag)
- equery uses (package name)
- app-portage/gpytage - GTK utility to help manage Portage's user config files
- eix - See
- /etc/portage/package.use — provides a more fine grained per-package control of USE flags than the USE variable in /etc/portage/make.conf
- Gentoo Handbook documentation on USE flags
- Gentoo Java USE flags
- Toolkit USE Flags — summarizes main points from discussions about toolkit (GTK, QT) USE flags (gtk2, gtk3, qt4, qt5, etc.).
- https://packages.gentoo.org/useflags/ - USE flags on Gentoo Packages Database.
- cat /var/db/repos/gentoo/profiles/use.desc - The common USE flag description list can be seen locally on systems with Portage installed.
- https://www.gentoo.org/support/use-flags/ - The full USE flag index.
- https://devmanual.gentoo.org/general-concepts/use-flags/ - USE flags conceptually explained in the Gentoo Developer Handbook.