USE Flags

Durch die USE-Flags wird das System angepasst. Die Einrichtung eines Server unterscheidet sich von der Einrichtung einer Workstation. Eine Spiele-Workstation unterscheidet sich von einer Workstation für 3D-Rendering. Dies trifft nicht nur bei der Auswahl der Pakete die Sie installieren wollen zu, sondern auch welche Funktionen ein Paket unterstützen soll.  Durch die korrekte Definition der Schlüsselwörter wird das System speziell auf die Bedürfnisse des Benutzers zugeschnitten.

Werfen Sie einen Blick auf ein konkretes Beispiel: das kde-Schlüsselwort. Wenn dieses Schlüsselwort nicht in der USE-Variable ist, werden alle Pakete, die optionale KDE-Unterstützung haben, ohne KDE-Unterstützung kompiliert. Alle Pakete, die eine optionale KDE-Abhängigkeit haben, werden ohne Installation der KDE-Bibliotheken (als Abhängigkeit) installiert. Wenn das kde-Schlüsselwort definiert ist, werden diese Pakete mit KDE-Unterstützung kompiliert und die KDE-Bibliotheken werden als Abhängigkeit installiert.

Um diese Standardeinstellung zu ändern, fügen Sie Schlüsselwörter zu / von der USE-Variablen hinzu oder entfernen Sie sie. Dies geschieht durch die Definition der USE-Variablen in /etc/portage/make.conf. In dieser Variable kann man die zusätzlichen USE-Flags hinzufügen oder die USE-Flags entfernen, die nicht mehr benötigt werden. Dies geschieht durch Präfixierung des Schlüsselwortes mit dem Minuszeichen (-).

Zum Beispiel, um Unterstützung für KDE und Qt zu entfernen, aber Unterstützung für LDAP hinzuzufügen, kann die folgende USE in /etc/portage/make.conf definiert werden:

# nano -w /etc/portage/make.conf
USE="-kde -qt4 -qt5 ldap"

Die Änderung bzw Anpassung von USE-Flags erfordert eine Aktualisierung der damit zusammenhängenden Dateien. Durch den Befehl etc-update werden die Dateien auf Aktualisierungen überprüft.  Falls diese vorliegen werden die Dateien hier angezeigt. Nach Auswahl der Datei werden die Unterschiede angezeigt und können gespeichert oder ignoriert werden. (Bitte beachten: mit etc-update werden keine Pakete aktualisiert. Dies wird nachträglich durch emerge –newuse world durchgeführt)

Eine Aktualisierung ist zum Beispiel bei einem Wechsel des Profils erforderlich. Ein Profil stellt Grundeinstellungen zur Kompilierung von Paketen zur Verfügung. Die derzeit verfügbaren Profile:

michi@localhost ~ $ eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/13.0
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop
[4] default/linux/amd64/13.0/desktop/gnome
[5] default/linux/amd64/13.0/desktop/gnome/systemd
[6] default/linux/amd64/13.0/desktop/plasma
[7] default/linux/amd64/13.0/desktop/plasma/systemd
[8] default/linux/amd64/13.0/developer
[9] default/linux/amd64/13.0/no-multilib
[10] default/linux/amd64/13.0/systemd *
[11] default/linux/amd64/13.0/x32
[12] hardened/linux/amd64
[13] hardened/linux/amd64/selinux
[14] hardened/linux/amd64/no-multilib
[15] hardened/linux/amd64/no-multilib/selinux
[16] hardened/linux/amd64/x32
[17] hardened/linux/musl/amd64
[18] hardened/linux/musl/amd64/x32
[19] default/linux/uclibc/amd64
[20] hardened/linux/uclibc/amd64
michi@localhost ~ $

Der Befehl env-update && source /etc/profile aktualisiert die Dateien vom Profilwechsel.

Durch den Befehl euse -a können momentan aktive USE-Flags angezeigt werden. Dieser Befehl steht nach der Installation von gentoolkit zur Verfügung.

Um die aktuell aktiven USE-Flags (vollständig) anzuzeigen, verwenden Sie emerge –info

localhost # etc-update
localhost # env-update && sources/etc/profile
localhost # emerge --info | grep ^USE
USE="a52 aac acpi alsa branding cairo cdr dbus dts ..."

Um zu schauen, welches Paket mit welchen USE-Flags verwendet wird, gibt es die Seite https://packages.gentoo.org/

In der Datei /etc/portage/package.use/iptables werden für einzelne Pakete USE Einstellungen vorgenommen.

Eine Beispieldatei:

#less /etc/portage/iptables
>=app-crypt/pinentry-0.9.7-r1 gnome-keyring
# required by x11-plugins/enigmail-1.9.8.1::gentoo
# required by mail-client/thunderbird-52.3.0::gentoo[crypt]
# required by @selected
# required by @world (argument)
>=app-crypt/pinentry-0.9.7-r1 gtk
# required by dev-qt/qtcore-5.7.1-r3::gentoo
# required by dev-qt/qtprintsupport-5.7.1::gentoo
# required by net-analyzer/wireshark-2.4.2::gentoo[qt5]
# required by wireshark (argument)
>=dev-libs/libpcre-8.41 pcre16
# required by dev-qt/qtgui-5.7.1-r1::gentoo[xcb]
# required by dev-qt/qtmultimedia-5.7.1::gentoo
# required by net-analyzer/wireshark-2.4.2::gentoo[qt5]
# required by wireshark (argument)
>=x11-libs/libxcb-1.12-r2 xkb
# required by x11-misc/xdg-utils-1.1.1-r1::gentoo
# required by net-analyzer/wireshark-2.4.2::gentoo[qt5,-gtk]
# required by wireshark (argument)
>=app-text/xmlto-0.0.26-r1 text
>=net-mic/networkmanager-1.4.4-r1 gtk
>=net-misc/networkmanager-openvpn-1.2.10::gentoo gtk

Als Erstes wird angegeben ob es nur für die aktuelle Version oder auch für spätere gelten soll (= oder >) Dann der Name des Paketes mit Versionsnummer. Nach einem Leerzeichen wird das gewünschte Flag gesetzt. Durch den Befehl etc-update werden die Dateien auf Aktualisierungen überprüft. Falls diese vorliegen werden die Dateien hier angezeigt. Nach Auswahl der Datei werden die Unterschiede angezeigt und können gespeichert oder ignoriert werden.

 

So wird zum Beispiel ein Export in jpg und png in Gimp nur möglich sein, wenn Gimp mit den USE Flag jpg kompiliert wurde. Dies kann einmalig durch USE=jpg emerge -av gimp erreicht werden. Soll beim nächsten Update die Einstellung nicht überschrieben werden, ist es sinnvoll die Einstellung in der /etc/portage/package.use einzutragen.
So brachte Gimp  die Fehlermeldung, dass das Dateiformat jpg nicht bekannt ist. Der Aufruf des emerge-Befehls zeigte ein -jpg in der Übersicht an. Das heisst, Gimp wurde ohne jpg Option kompiliert.

Es wurde in die Datei /etc/portage/iputils folgender Eintrag vorgenommen: 

>=media-gfx/gimp-2.8 jpg png jpeg

Somit wird festgelegt, dass Gimp ab jetzt immer mit der Option jpg jpeg und png kompiliert wird.

Fehler weil GIMP die Dateiendung nicht zuordnen kann
vorherige USE Flag gekennzeichnet durch -jpg
USE Flags für GIMP Die hinzugefügten Flags werden grün mit Stern angezeigt