1.21 21. lokakuuta 2004
Mitä USE-asetukset (USE-flägit) ovat? USE-asetusten tarkoitus

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ä.

USE-asetusten määritelmä

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 kde avulla. Jollei tätä avainsanaa ole määritetty USE-muuttujissasi, kaikki paketit joissa on valinnainen KDE-tuki kääntyvät ilman sitä. Samoin kaikki paketit jotka vaihtoehtoisesti ovat riippuvaisia KDE:stä jättävät KDE:n vaihtoehtoiset kirjastoriipuvuudet asentamatta. Jos taas kde-avainsana on määritelty, KDE-tuki käännetään mukaan ja KDE-kirjastot asennetaan riippuvuuksien mukaan.

Oikein määritellyillä avainsanoilla saadaan aikaan järjestelmä joka on tarkalleen räätälöity tarpeitasi varten.

Mitä USE-asetuksia on olemassa?

USE-asetuksia on kahta lajia: globaaleja ja paikallisia.

  • Globaalit USE-asetukset ovat useampien pakettien käytössä järjesetelmänlaajuisesti. Näitä useimmat käyttäjät pitävät USE-asetuksin.
  • Paikalliset USE-asetukset ovat vain yhden paketin käytössä pakettikohtaisia asetuksia varten.

Listaus käytössä olevista USE-asetuksista on saatavilla verkosta tai paikallisen järjestelmän tiedostosta /usr/portage/profiles/use.desc. Lyhyt (varsin epätäydellinen) ote:

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 /usr/portage/profiles/use.local.desc.

USE-asetusten käyttäminen Pysyvien USE-asetusten määritteleminen

Nyt kun olet toivottavasti vakuuttunut USE-asetusten tärkeydestä, opastamme USE-asetusten määrittelyssä.

Kuten aiemmin huomattiin, USE-asetukset määritellään USE-muuttujaan. Helpottaaksemme käyttäjien tehtävää USE-asetusten valinnassa olemme valmiiksi tarjonneet oletusasetuksia. Oletusasetuksiin on valittu kokoelma USEja joita uskomme valtaosan Gentoon käyttäjistä käyttävän. Nämä oletukset löytyvät tiedostosta /etc/make.profile/make.defaults. Nykyiset asetukset näyttävät tältä:

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 /etc/make.profile/make.defaults muuttaaksesi USE-asetuksia; nämä muutokset häviävät Portagen päivitysten mukana!

Oletusasetusten muuttaamiseksi tulee poistaa avainsanoja USE-muuttujasta. Järjestelmänlaajuisesti tämän voi tehdä muuttamalla USE-muuttujaa tiedostossa /etc/make.conf. Tähän muuttujaan voi lisätä tarvittuja USE-asetuksia tai poistaa niitä joita ei haluta, poistaminen tapahtuu lisäämällä miinus ('-') avainsanan eteen.

Jos esimerkiksi halutaan poistaa KDE- ja QT-tuki mutta lisätä ldap, merkitään USE-muuttuja tiedostoon /etc/make.conf seuraavasti:

USE="-kde -qt ldap"
USE-asetusten määrittely pakettikohtaisesti

Joskus on järkevää määritellä jokin USE-asetus vain muutamalle paketille, muttei suinkaan kaikille. Tällöin on parasta luoda hakemisto /etc/portage, jollei sitä ole vielä, ja.

Jos et vaikkapa halua valinnaista berkdb-tukea kaikkiin sovelluksiin, mutta haluat moisen mysql:ään, lisää /etc/portage/package.use-tiedostoon seuraavaa:

dev-db/mysql berkdb

On myös mahdollista poistaa joitain USE-asetuksia pakettikohtaisesti, esimerkiksi poistetaan java PHP:stä:

dev-php/php -java
Väliaikaisten USE-asetusten tekeminen

Joskus on tarve käyttää USE-muuttujaa vain kerran. Sen sijaan että tässä tapauksessa joutuisi muokkaamaan tiedostoa /etc/make.conf kahdesti (asetuksen lisäämiseksi ja poistamiseksi), voidaan USE-muuttuja määritellä ympäristömuuttujana.

Esimerkkinä poistamme hetkellisesti javan USE-aseasetuksista mozillan asentamisen ajaksi.

# USE="-java" emerge mozilla
USE-asetusten perintä

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 /etc/make.profile/use.defaults:

gnome           gnome-base/gnome
gtk             x11-libs/gtk+
qt              x11-libs/qt
kde             kde-base/kdebase
motif           x11-libs/openmotif
Tärkeysjärjestys

Tietenkin näillä eri USE-muuttujilla on tietty prioriteettijärjestys, eikä ole järkevää sanoa USE="-java" vain nähdäkseen että java kuitenkin on päällä. Asetukset luetaan siis seuraavassa tärkeysjärjestyksessä (ensimmäisenä vähiten tärkeä):

  1. Oletusasetukset tiedostossa /etc/make.profile/make.defaults
  2. Tiedostossa /etc/make.profile/use.defaults määriteltyjen pakettien asetuksista perityt
  3. Käyttäjän määrittelemät asetukset tiedostossa /etc/make.conf
  4. Käyttäjän määrittelemät USE-asetukset ympäristömuuttujassa.

Nähdäksesi lopullisen USEn muodon käytä komentoa emerge info. Se antaa listauksen kaikista Portagelle merkittävistä muuttujista (ml. USE-asetukset) nykyisine sisältöineen.

# emerge info
Järjestelmä mukauttaminen uusiin USE-asetuksiin

Kokonainen järjestelmä pystytään päivittämään vastaamaan täysin muutettuja USE-asetuksia emergen valitsimella --newuse:

# 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 depclean on vaarallinen komento ja sitä käytettäessä on noudatettava varovaisuutta. Varmista että annettu lista "vanhentuneista" paketeista ei sisällä paketteja jotka ovatkin tarpeellisia. Seuraavassa esimerkissä käytetään valitsinta -p listauksen tuottamiseen ilman varsinaista poistotoimintoa.
# emerge -p depclean

Depclean-toiminnon loputtua päivitä dynaamisesti äskettäin päivittyneitä kirjastoja vastaan linkittyvät sovellukset komennolla revdep-rebuild. Tämä komento on osa gentoolkit-pakettia, joten se pitää tietenkin asentaa ennen käyttämistä.

# revdep-rebuild

Tämän jälkeen järjestelmä onkin täysin tuoreiden USE-asetusten mukainen.

Pakettikohtaiset USE-asetukset Mahdollisten USE-asetusten tarkastelu

Otetaan esimerkiksi mozilla, mitä USE-asetuksia se totteleekaan? Selvittääksemme annamme komennolle emerge valitsimet --pretend (teeskentelemme asennusta tekemättä mitään) ja --verbose (katselemme monisanaista tulostetta):

# 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

emergen lisäksi on myös muita työkaluja tätä varten. Itse asiassa etcat on jopa pääasiallisesti tarkoitettu pakettien tiedon tarkasteluun. Se sijaitsee gentoolkit-paketista. Ensin siis asennetaan gentoolkit:

# emerge gentoolkit

Komento etcat argumentilla uses näyttää nyt annetun paketin USE-muuttujat. Esimerkiksi katsomme gnumericia:

# etcat uses gnumeric
[ Colour Code : set unset ]
[ 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)