Disclaimer :
This document is not valid and is not maintained anymore.
|
[ << ]
[ < ]
[ Hjem ]
[ > ]
[ >> ]
2. USE-flag
Indhold:
2.a. Hvad er USE-flag?
Ideerne bag ved USE-flag
Når du installerer Gentoo (eller enhver anden distribution, eller endda operativ-system
for at nævne det) foretager du nogle valg, afhængigt af miljøet du
arbejder med. En opsætning af en server er forskellig fra en opsætning af en arbejdsstation.
En spil-arbejdsstation er forskellig fra en 3D-gengivelse-arbejdsstation.
Det er ikke kun rigtigt for at vælge de pakker, som du vil installere, men også
hvilke egenskaber en specifik pakke bør understøtte. Hvis du ikke behøver OpenGL, hvorfor
skulle du interessere dig for at installere OpenGL og bygge OpenGL-understøttelse til de fleste af vores
pakker? Hvis du ikke vil bruge KDE, hvorfor vi du interessere dig for at kompilere pakker
med KDE-understøttelse, hvis disse pakker virker fejlfrit uden?
For at hjælpe brugere med at beslutte, hvad man bør installere/aktivere eller ikke, vil vi få
brugeren til at specificere sit miljø på en nem måde. Dette tvinger brugeren til at
beslutte, hvad han virkelig vil have og letgør processen for Portage, vores
pakkebehandlingssystem, for at lave hjælpsomme beslutninger.
Definition af et USE-flag
Tag et skridt ind i USE-flag verdenen. Sådan et flag er et nøgleord, der udtrykker understøttelse og
afhængighedsinformationer til sådan et koncept. Hvis du definerer et specifikt USE-flag,
vil Portage vide om, at du vil have understøttelse for dette valgte nøgleord. Selvfølgelig
vil dette også ændre afhængighedsinformationerne for en pakke.
Lad os tage et kig på et specifikt eksempel: kde-nøgleordet. Hvis du ikke
har dette nøgleord i dine USE-variablerne, vil alle pakker, som har
valgfri KDE-understøttelse, blive kompileret uden KDE-understøttelse. Alle
pakker, som har valgfrie KDE-afhængigheder, vil blive installeret
uden at installere KDE-biblioteker (som en afhængighed). Hvis du har defineret
kde-nøgleordet, vælg da de pakker, som vil være kompileret med
KDE-understøttelse, og KDE-libs vil blive installeret, som en afhængighed.
Ved at definere nøgleordene korrekt, vil du modtage et system, som er skræddersyet
specifikt til dine behov.
Hvilke USE-flag eksisterer?
Der er to typer USE-flag: globale og lokale USE-flag.
-
Et globalt USE-flag er brugt af en del pakker, over hele systemet. Dette er
hvad de fleste folk forstår som USE-flag.
-
Et lokalt USE-flag er brugt af en enkelt pakke for at lave pakke-specifikke
beslutninger.
En liste over tilgængelige globale USE-flag, kan blive fundet online eller lokalt i
/usr/portage/profiles/use.desc. Et kort (meget ufuldendt)
udsnit:
Kode oversigt 1.1: Et kort udsnit af tilgængelige USE-flag |
gtk - Tilføjer understøttelse til x11-libs/gtk+ (GIMP-værktøjskassen)
gtk2 - Brug af gtk+-2.0.0 i stedet for gtk+-1.2 i nogle situationer, hvor programmet undersøtter begge.
gtkhtml - Tilføjer understøttelse til gnome-extra/gtkhtml
guile - Tilføjer understøttelse til dev-util/guile (interpreter til Scheme)
icc - Brug af Intels C++ Compiler, hvis pakken understøtter det
icc-pgo - Aktivering af 'PGO data generation' eller brug den ved brug af icc.
imap - Tilføjer understøttelse til IMAP
|
En liste over lokale mulige USE-flag kan blive fundet lokalt i
/usr/portage/profiles/use.local.desc.
2.b. Brug af USE-flag
Erklær permanente USE-flag
I håbet af at du er overbevist om vigtigheden af USE-flag, vil vi nu informere
dig om, hvordan man erklærer USE-flag.
Som tidligere nævnt, er alle USE-flags erklæret inde i USE-variabelen.
For at gøre det nemt for brugere at søge og vælge USE-flag, har vi allerede
leveret en standard USE-indstilling. Denne indstilling er en samling af USE-flag,
som vi mener er de mest brugte af Gentoo brugere. Denne standard-indstilling er erklæret
i make.defaults fil delen af din profil.
Den profil dit system lytter til bliver peget på af
/etc/make.profile symlinket. Hver profil virker ovenpå en
anden større profil, slutresultatet er derfor summen af alle profilerne.
Den øverste profil er base profilen (/usr/portage/profiles/base).
Lad os kigge på standard opsætningen:
Kode oversigt 2.1: Akkumuleret /usr/portage/profiles/default-linux/x86/2004.3/make.defaults USE variabler |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk gtk2 imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Som du kan se, indeholder denne variabel allerede en hel del nøgleord. Du skal
ikke ændre noget i make.defaults-filen for at skræddersy
USE-variabelen til dine behov: ændringer i denne fil vil blive fjernet, når
du opdaterer Portage!
For at ændre denne standard-indstilling, skal du tilføje eller fjerne nøgleord til
USE-variabelen. Dette er gjort globalt ved at definere USE-variabelen
i /etc/make.conf. Dette er variabelen, som du kan tilføje ekstra USE-flag, som du
kræver, eller fjerne de USE-flag, som du ikke vil bruge. Sidstnævnte er gjort ved
at foranstille nøgleordet med et minus-tegn ("-").
F.eks. for at fjerne understøttelse til KDE og QT, men tilføje understøttelse til ldap,
følgende USE kan blive defineret i /etc/make.conf:
Kode oversigt 2.2: Et eksempel på en USE-opsætning /etc/make.conf |
USE="-kde -qt ldap"
|
Erklæringer af USE-flag til individuelle pakker
Nogen gange ønsker du at erklære specifikke USE-flag til et af (eller flere)
programmerne, men ikke i hele systemet. For at gøre dette, skal du oprette
/etc/portage-folderen (hvis den ikke allerede eksisterer) og
redigere /etc/portage/package.use.
F.eks., hvis du ikke vil have berkdb-understøttelse globalt, men
kun vil have den til mysql, ville du tilføje:
Kode oversigt 2.3: /etc/portage/package.use eksempel |
dev-db/mysql berkdb
|
Du kan selvfølgelig også specifikt udlade USE-flag for et specifikt
program. F.eks., hvis du ikke vil have java-understøttelse i PHP:
Kode oversigt 2.4: /etc/portage/package.use eksempel nr.2 |
dev-php/php -java
|
Erklæringer af midlertidige USE-flag
Nogen gange vil du ønske at tilføje en specifik USE-indstilling kun én gang. I stedet for at redigere
/etc/make.conf to gange (for at lave og fjerne USE-ændringer) kan du bare
erklære USE-variabelen, som en miljø-variabel. Huske at, når du gen-emerger eller opdaterer dette program
(enten specifik eller som en del af en systemopdatering), vil dine ændringer forsvinde!
Som et eksempel, vil vi midlertidigt fjerne java fra USE-opsætningen,
når vi installerer mozilla.
Kode oversigt 2.5: Brug af USE, som en miljøvariabel |
# USE="-java" emerge mozilla
|
Automatiske USE-flag
Efter at et antal pakker er installeret, kan yderligere USE-flag blive
automatisk aktiveret for dig, hvis du ikke selv deaktiverer dem. For at
se listen af pakker, som igangsætter automatiske USE-flag, tjek
/etc/make.profile/use.defaults- og
use.defaults-filerne i de øvre profiler.
Kode oversigt 2.6: Et udsnit af /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
|
Rangorden
Selvfølgelig er der en vis rangorden på hvilken indstilling, der har prioritet over
USE-opsætning. Du vil ikke erklære USE="-java", kun for at se om at
java stadigvæk er brugt i forhold til en indstilling, som har en højere priotitet.
Rangordenen for USE-opsætningen er, opstilt efter prioritet (første har laveste prioritet):
-
Standard USE-opsætning, erklæret i make.defaults
filens delen af din profil
-
Arvet USE-opsætning, hvis en pakke fra
/etc/make.profile/use.defaults er installeret
-
Brugerdefineret USE-indstilling i /etc/make.conf
-
Brugerdefineret USE-indstilling, som en miljø-variabel
-
Brugerdefineret USE-indstilling i /etc/portage/package.use
For at se den færdige USE-opsætning, som set af Portage, kør emerge --info.
Dette vil give dig en liste over alle relevante variabler (inklusiv USE-variabler) med
indholdet brugt af Portage.
Kode oversigt 2.7: At køre emerge --info |
# emerge --info
|
Tilpasse hele dit system ved brug af nye USE-flag
Hvis du har ændret dine USE-flag og ønsker at hele dit system skal
bruge disse nye flag, brug emerge --newuse valgmulighed:
Kode oversigt 2.8: Genbygning af hele systemet |
# emerge --update --deep --newuse world
|
Dernæst, kør Portages depclean for at fjerne betingede afhængigheder som
er blevet emerged på dit "gamle" system, men som er blevet forældet ved brug af de
nye USE-flag.
Advarsel:
Kørsel af emerge --depclean er en farlig opgave og bør håndteres med
forsigtighed. Dobbelt-tjek den leverede liste af "forældede" pakker for at sørge for
at den ikke fjerner pakker, som du behøver. I det følgende eksempel, tilføjer vi
-p-kontakten for at have depclean til at kun vise pakkerne, uden at fjerne dem.
|
Kode oversigt 2.9: Fjernelse af forældede pakker |
# emerge -p --depclean
|
Når depclean er færdig, kør revdep-rebuild for genbygge de programmer,
som er dynamisk linket til delte objekter, leveret af mulige fjernede pakker.
revdep-rebuild er en del af gentoolkit-pakken; glem ikke at
emerge den først.
Kode oversigt 2.10: Kørsel af revdep-rebuild |
# revdep-rebuild
|
Når det hele er udført, bruger dit system de nye USE-flag indstillinger.
2.c. Pakke-specifikke USE-flag
Se tilgængelige USE-flag
Lad os tage eksemplet fra mozilla: hvilke USE-flag lytter den til? For
at finde ud af dette, bruger vi emerge med --pretend og
--verbose valgmulighederne:
Kode oversigt 3.1: Se brugte USE-flag |
# 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 er ikke det eneste værktøj til dette job. I virkeligheden har vi et værktøj
tilegnet til pakke-informationer, kaldet equery, som er placeret i
gentoolkit-pakken. Først, installer gentoolkit:
Kode oversigt 3.2: Installation af gentoolkit |
# emerge gentoolkit
|
Kør nu equery med uses parameteren for at se USE-flag af en
vis pakke. F.eks. gnumeric-pakken:
Kode oversigt 3.3: Brug af equery for at se brugte USE-flag |
# equery uses gnumeric
[ Colour Code : set ]
[ 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 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
[ << ]
[ < ]
[ Hjem ]
[ > ]
[ >> ]
Indholdet i dette dokument er autoriseret under en Creative Commons -
Attribution / Share Alike licens.
|