Gentoo spezifische Anleitungen
USE-Flags
Ein wichtiger Bestandteil des Portage-System von Gentoo sind die USE-Flags. Mit ihnen bestimmt man, wie und für welches System/Dienst die jeweiligen Pakete kompiliert werden. Dabei ist eine genaue Reihenfolge zu beachten, mit der die versch. Flags abgefragt werden:
Reihenfolge der Abfrage nach Use-Flags
- Default USE setting declared in the make.defaults files part of your profile:
/usr/portage/profiles/default-linux/x86/make.defaults - Inherited USE setting if a package from /etc/make.profile/use.defaults is installed
- User-defined USE setting in /etc/make.conf
- User-defined USE setting in /etc/portage/package.use
- User-defined USE setting as environment variable
Liste der verfügbaren Flags
Man kann nun globale und lokale Flags setzen. Globale werden für jedes Paket übernommen, lokale nur für einzelne Pakete, die man angegeben hat. Es gibt eine ganze Reihe an Flags, die man glücklicherweise in folgenden Dateien nachlesen kann:
Use-Flags (global): /usr/portage/profiles/use.desc
Use-Flags (lokal): /usr/portage/profiles/use.desc.local
Flags setzen
Nun wollen wir natürlich auch unser System optimieren und passen die Optionen an unseren Rechner an. Zuerst setzt man die globalen Flags für alle Pakete. Dazu editieren wir die "make.conf" und bearbeiten das USE-Attribut:
/etc/make.conf : |
---|
# These settings were set by the catalyst build script that automatically built this stage # Please consult /etc/make.conf.example for a more detailed example USE="a52 aac acl acpi apache2 -apm bluetooth bzip2 cdr cpdflib directfb dbus divx4linux dri dvd dvdr dvdread exif fbcon fdftk ffmpeg flash ftp geoip -gnome icc icq ieee1394 imagemagick imap innodb jikes kdeenablefinal lm_sensors mhash mime mng msn mysql mysqli nocd nptl pcmcia pcre php pic samba scanner session slang smartcard sse svg sysvipc tetex threads nicode usb vcd wifi win32codecs wmf xinerama xml xosd xpm xvid" |
Ich gehe hier nur speziell auf die Flags ein, die eigentliche Datei enthält mehr Einträge.
Es ist eine zeitaufwendige Sache, um die Flags einzutragen. Vor allem muss man sich vorher im Klaren sein, wie man sein System nutzen will. Dementsprechend
muss man seine Flags setzen. Deshalb dienen diese Flags auch nur als Anhaltspunkt und sollten keinesfalls einfach so übernommen werden.
Anschliessend setzen wir für einzelne Pakete spezielle Flags. Diese Einträge schreiben wir in "package.use". Dabei ist zu sagen, dass sich die Datei erst mit der Zeit füllen wird, da man am Anfang noch nicht viele Pakete installiert hat.
/etc/portage/package.use |
---|
# Lokale Use-Flag fuer einzelne Pakete kde-base/kdemultimedia audiofile xine kde-base/kdelibs jpeg2k kde-base/kdebase logitech-mouse media-video/mplayer cdparanoia live real sys-libs/glibc userlocales media-gfx/splashutils kdgraphics net-wireless/kismet gps |
Wenn wir zum Beispiel berkdb Unterstützung nicht global, aber für mysql möchten, fügen wir folgendes ein:
/etc/portage/package.use : |
---|
dev-db/mysql berkdb |
Wir können aber auch ein USE-Flag für ein Ebuild explizit deaktivieren. Wenn wir zum Beispiel keine Java-Unterstützung in PHP benötigen:
/etc/portage/package.use : |
---|
dev-php/php -java |
Abfrage der aktuell gesetzten Flags
Alle Flags des System lassen sich mit "emerge" anzeigen. Dazu folgenden Befehl eingeben:
gentoo:/# emerge info |
---|
Gentoo Base System version 1.12.0_pre8 Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r9 i686) ================================================================= System uname: 2.6.12-gentoo-r9 i686 Intel(R) Pentium(R) M processor 2.00GHz CXXFLAGS="-march=pentium-m -pipe -fomit-frame-pointer" USE="x86 X a52 aac acl acpi alsa apache2 arts avi berkdb bitmap-fonts bluetooth bzip2 cdr cpdflib crypt cups curl dbus directfb divx4linux dri dvd dvdr dvdread eds emboss encode esd exif fam fbcon fdftk ffmpeg flash foomaticdb fortran ftp gd gdbm geoip gif gpm gstreamer gtk gtk2 icc icq ieee1394 imagemagick imap imlib innodb ipv6 java jikes jpeg junit kde kdeenablefinal libg++ libwww lm_sensors mad mhash mikmod mime mng motif mp3 mpeg msn mysql mysqli ncurses nicode nls nocd nptl ogg oggvorbis opengl oss pam pcmcia pcre pdflib perl php pic png python qt quicktime readline samba scanner sdl session slang smartcard spell sse ssl svg sysvipc tcpd tetex threads tiff truetype truetype-fonts type1-fonts usb vcd vorbis wifi win32codecs wmf xine xinerama xml xml2 xmms xosd xpm xv xvid zlib video_cards_radeon video_cards_intel-agp linguas_de userland_GNU kernel_linux elibc_glibc" |
Woher kommen die vielen Flags? Wir haben oben doch viel weniger angegeben!
Das liegt daran, dass nicht nur die "make.conf" abgefragt wird, sondern wie oben beschrieben, 5 Dateien abgefragt werden. Deshalb sollte man vorher schauen,
welche Flags schon in den Punkten 1. und 2. der Liste enthalten sind. Diese Einträge kann man sich dann sparen.
Um Flags einzelner Paket abzufragen gibt es zwei Befehle, die sich auf alle verfügbaren Pakete oder nach lokal emerge'ten Paketen richten:
gentoo:/# emerge info gentoo:/# equery uses "Paket" |
---|