Gentoota (kuten muita distroja tai käyttöjärjestelmiäkin) asennettaessa tehdään valintoja käyttöympäristön mukaan. Palvelimen asetukset ovat erilaiset kuin työaseman ja pelikone näyttää erilaiselta kuin 3D-kehittäjän kone.
Tämä vaikuttaa paitsi asennettuihin paketteihin myös pakettien ominaisuuksiin. Jos OpenGL:lle ei ole tarvetta, ei varmaankaan ole järkevää pitää kaikissa sovelluksissa OpenGL-tukea mukana. Jos KDE ei ole käytössä et varmasti myöskään halua kääntää KDE-tukea mukaan paketteihin jotka eivät välttämättä sitä tarvitse.
Auttaaksemme käyttäjiä valitsemaan asennettavat paketit ja aktivoitavat toiminnallisuudet haluamme käyttäjän määrittelevän käyttöympäristönsä yksinkertaisella tavalla. Käyttäjän tarvitsee valita mitä haluaa helpottaakseen Portagea, paketinhallintajärjestelmäämme, tekemään järkeviä päätöksiä.
Tutustukaamme USE-asetuksiin. Jokainen asetus on totuusarvoinen avainsana joka sisältää tiedon jonkin käsitteen tuista ja riippuvuuksista. Valitessasi USE-asetuksen kerrot Portagelle haluavasi tuen avainsanan tarkoitteelle. Tämä tietenkin vaikuttaa paketin riippuvuustietoihinkin.
Tarkastelkaamme asioita esimerkin
Oikein määritellyillä avainsanoilla saadaan aikaan järjestelmä joka on tarkalleen räätälöity tarpeitasi varten.
USE-asetuksia on kahta lajia:
Listaus käytössä olevista USE-asetuksista on saatavilla
gtk - Adds support for x11-libs/gtk+ (The GIMP Toolkit) gtk2 - Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both. gtkhtml - Adds support for gnome-extra/gtkhtml guile - Adds support for dev-util/guile (interpreter for Scheme) icc - Use the Intel C++ Compiler if the package supports it icc-pgo - Enable PGO data generation or use when use icc. imap - Adds support for IMAP
Luettelo USE-asetuksista on tiedostossa
Nyt kun olet toivottavasti vakuuttunut USE-asetusten tärkeydestä, opastamme USE-asetusten määrittelyssä.
Kuten aiemmin huomattiin, USE-asetukset määritellään
USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl slang spell ssl svga tcpd truetype X xml2 xmms xv zlib"
Voinet huomata että muuttujaan on jo määritelty aika monia avainsanoja.
Älä käytä tiedostoa
Oletusasetusten muuttaamiseksi tulee poistaa avainsanoja
Jos esimerkiksi halutaan poistaa KDE- ja QT-tuki mutta lisätä ldap, merkitään
USE="-kde -qt ldap"
Joskus on järkevää määritellä jokin USE-asetus vain muutamalle paketille, muttei
suinkaan kaikille. Tällöin on parasta luoda hakemisto
Jos et vaikkapa halua valinnaista
dev-db/mysql berkdb
On myös mahdollista
dev-php/php -java
Joskus on tarve käyttää USE-muuttujaa vain kerran. Sen sijaan että tässä
tapauksessa joutuisi muokkaamaan tiedostoa
Esimerkkinä poistamme hetkellisesti javan USE-aseasetuksista mozillan asentamisen ajaksi.
# USE="-java" emerge mozilla
Jotkut paketit USE-asetusten seuraamisen lisäksi myös asettavat niitä. Kun
tällaienn paketti asennetaan sen tarjoama USE-asetus lisätään muiden joukkoon.
Listaus USE-asetuksen asettavista paketeista löytyy tiedostosta
gnome gnome-base/gnome gtk x11-libs/gtk+ qt x11-libs/qt kde kde-base/kdebase motif x11-libs/openmotif
Tietenkin näillä eri USE-muuttujilla on tietty prioriteettijärjestys, eikä
ole järkevää sanoa
Nähdäksesi lopullisen
# emerge info
Kokonainen järjestelmä pystytään päivittämään vastaamaan täysin muutettuja
USE-asetuksia
# emerge --update -deep --newuse world
Seuraavaksi Portagen depclean-toiminnolla poistetaan ne vaihtoehtoiset riippuvuudet mitkä kuuluivat vanhaan järjestelmääsi mutta eivät sisälly nykyisiin USE-asetuksiin.
# emerge -p depclean
Depclean-toiminnon loputtua päivitä dynaamisesti äskettäin päivittyneitä
kirjastoja vastaan linkittyvät sovellukset komennolla
# revdep-rebuild
Tämän jälkeen järjestelmä onkin täysin tuoreiden USE-asetusten mukainen.
Otetaan esimerkiksi
# emerge --pretend --verbose mozilla These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap +gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail -moznocompose -moznoxft
# emerge gentoolkit
Komento
# etcat uses gnumeric [ Colour Code : setunset ] [ Legend : (U) Col 1 - Current USE flags ] [ : (I) Col 2 - Installed With USE flags ] U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ] - -libgda : Adds GNU Data Access (CORBA wrapper) support for gnumeric - -gnomedb : unknown + + python : Adds support/bindings for the Python language + + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)