USE-Flag
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
USE-Flags sind Schlüsselwörter, die Unterstützung und Abhängigkeitsinformationen für ein bestimmtes Konzept beinhalten. Sie sind ein Kernmerkmal von Gentoo und ein gutes Verständnis, wie man mit ihnen umgeht, ist notwendig, um ein Gentoo-System zu administrieren.
USE flags serve to configure Portage to determine how each package will be configured on installation or update. USE flags can configure many aspects of a package, and the available USE flags and corresponding optional functionality depend on each individual piece of software.
USE flags can change an array of package behavior. They often set compile-time options, though these configure options are not systematically exposed through USE flags - it's up to the package maintainers to decide what options are useful to provide as USE flags. USE flags can specify which optional libraries or utilities will be linked with a package, often determining dependencies. Another example of what USE flags can change is which files are included in an installation, such as whether documentation is provided or not.
Diese Möglichkeit, Optionen zu wählen, die nur bei der Installation eines Pakets verfügbar sind, ist einer der großen Vorteile von Gentoo, da es auf dem Quellcode basiert.
Die gesamte Distribution wird standardmäßig mit vernünftigen USE-Flags ausgeliefert, die durch die Auswahl eines Profils weiter verfeinert werden können, um der geplanten Systemnutzung zu entsprechen. Jedes Paket hat seinen eigenen Satz an verfügbaren USE-Flags, abhängig davon, was für das Paket konfiguriert werden kann, und diese sind ebenfalls auf vernünftige Standardwerte gesetzt.
Grundlegende Konzepte, wie man mit USE-Flags arbeitet, finden Sie im Handbuch. Siehe auch /etc/portage/package.use zum Setzen eines Flags für ein Paket, und /etc/portage/make.conf für Flags, die global gesetzt werden sollen.
Deklaration von USE-Flags
Technically, the Gentoo ebuild repository comes with a small set of default USE flags. Default USE flags are further defined by the selected profile. Each package comes with a set of available USE flags, and these can also have a default state, if this is justified in the context of the package. Each layer overrides the previous, to configure Portage to set up the installation of each package.
Ein USE-Flag kann drei Zustände haben: gesetzt, nicht gesetzt oder Standard. USE-Flags können global in der /etc/portage/make.conf oder für bestimmte Pakete in /etc/portage/package.use gesetzt oder nicht gesetzt werden.
Das Vorhandensein eines USE-Flags in einer dieser Dateien setzt dieses USE-Flag. Das Einfügen eines USE-Flag, dem ein Minuszeichen ("-") vorangestellt ist, hebt das USE-Flag auf. Wenn an einer dieser Stellen kein USE-Flag vorhanden ist, wird der Standard verwendet.
Weitere Informationen finden Sie im Abschnitt Verwendung von USE-Flags des amd64 Handbuchs.
Es ist oft besser, USE-Flags pro Paket zu setzen als systemweit. USE-Flags werden normalerweise auf einen vernünftigen Standard gesetzt - überlegen Sie sorgfältig, welche Flags Sie global in make.conf setzen wollen.
Ein USE-Flag kann zwar theoretisch auf der Kommandozeile in einer Umgebungsvariable temporär gesetzt werden (z.B. USE="<flags>" emerge -av <Paket>), verwenden Sie dies nicht, um Pakete zu installieren. Jede auf diese Weise gesetzte USE-Flag geht verloren, wenn einUpgrade ausgeführt oder das Paket erneut emergt wird.
Nützliche Befehle
Um zu sehen, welche USE-Flags gegenwärtig aktiviert sind:
user $
portageq envvar USE | xargs -n 1
Um zu überprüfen, ob ein bestimmtes USE-Flag aktiviert ist und welche Pakete es verwenden, führen folgendes aus:
user $
euse -I <use_flag> # enthalten in app-portage/gentoolkit
user $
quse <use_flag> # enthalten in app-portage/portage-utils
user $
eix --installed-with-use <use_flag> # enthalten in app-portage/eix
Ersetzen Sie <use_flag>
durch das zu prüfende USE-Flag:
Optionen für den Emerge-Befehl
Der Befehl emerge hat einige USE-Flag-bezogene Optionen wie:
--changed-use
(-U
)--complete-graph-if-new-use < y | n >
--newuse
(-N
)
Für Einzelheiten siehe man 1 emerge.
"Lokale" vs. "globale" USE-Flags
The technical difference between "local" and "global" flags is simply a difference of where their descriptions are saved in the ebuild repository. "Global" USE flags are described in use.desc files (example) for a whole profile, whereas "local" USE flags are described in metadata.xml files (example), for a single package. When deciding where to define them, developers determine if a USE flag has a general function common to several packages, or a specific function for a single package.
For the end user, whether a USE flag is "global" or "local" has little importance. "Global" flags may sometimes be more suited to being set in the USE variable in make.conf, but there is absolutely no hard rule. In any case, as much as possible, no USE flags should be set in make.conf unless necessary, and /etc/portage/package.use should be preferred to set USE flags on a per-package basis. Following this advice should ease system administration in the long run.
Werkzeuge
Für die Analyse und Verwaltung von USE-Flags stehen einige Werkzeuge zur Verfügung:
- euse
- quse - for details see man 1 quse
- equery hasuse (USE flag)
- equery uses (package name)
- ufed
- app-portage/euses
- eix - See
--use
,--installed-with-use
and--installed-without-use
options
Siehe auch
- /etc/portage/package.use — stellt eine feinere, paketspezifische Kontrolle von USE-Flags zur Verfügung, als die USE-Variable in /etc/portage/make.conf
- Complete Handbook/Finishing off
- 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.).
Externe Ressourcen
- 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://devmanual.gentoo.org/general-concepts/use-flags/ - USE flags conceptually explained in the Gentoo Developer Handbook.