Disclaimer :
Questo documento non è più valido e non è più mantenuto.
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
2. Flag USE
Indice:
2.a. Cosa sono le flag USE
L'idea dietro le flag USE
Durante l'installazione di Gentoo (o di altre distribuzioni o comunque di altri
sistemi operativi), sono possibili diverse scelte a seconda dell'ambiente di
lavoro. Le impostazioni per un server differiscono da quelle per una
workstation, così come una stazione per giocare differisce da una per il
rendering 3D.
Questo non è vero soltanto per la scelta dei pacchetti da installare, ma anche
per le caratteristiche che un certo pacchetto dovrebbe supportare. Ad esempio,
se l'uso delle OpenGL non è richiesto, perchè installarle ed abilitarne il
supporto nei pacchetti che ne farebbero uso? Per lo stesso motivo, se non si
vuole usare KDE, perchè preoccuparsi di compilare i pacchetti col supporto per
KDE se questi pacchetti funzionano tranquillamente senza?
Per aiutare gli utenti a decidere cosa installare/attivare e cosa no, è
necessario che l'utente specifichi il proprio ambiente nel modo più semplice.
Questo forza l'utente a decidere cosa desidera realmente e facilita Portage, il
sistema per la gestione dei pacchetti, a prendere le decisioni appropriate.
Definizione delle flag USE
Concettualmente un flag USE è una parola chiave che racchiude l'idea di supporto
e di informazione sulla dipendenza. Se si definisce una certa flag USE, si
indica a Portage la volontà di avere il supporto per la parola chiave scelta.
Questo, naturalmente, altera anche le informazioni sulle dipendenze per un dato
pacchetto.
Prendendo come esempio la parola chiave kde, si ottiene questo
comportamento: se questa parola chiave non è presente nella variabile
USE, tutti i pacchetti che hanno il supporto opzionale per KDE
vengono compilati senza tale supporto; conseguentemente tutti i pacchetti
cha hanno una dipendenza opzionale con KDE vengono installati
senza le relative librerie KDE. Se invece la parola chiave kde è
stata definita, questi pacchetti vengono compilati col supporto di KDE e
di conseguenza anche le sue librerie vengono installate come dipendenze.
Definendo in maniera corretta le parole chiave si avrà a disposizione un sistema
perfettamente ritagliato sulle proprie esigenze.
Quali sono le flag USE utilizzabili
Ci sono due tipi di flag USE: globali e locali.
-
Una flag USE globale è usata da alcuni pacchetti a livello di
sistema. Questo è ciò che molti utenti vedono come flag USE.
-
Una flag USE locale è usata da un singolo pacchetto per prendere
decisioni specifiche sul pacchetto stesso.
Una lista di flag USE globali disponibili può essere trovata online o localmente in
/usr/portage/profiles/use.desc.
Un elenco delle flag USE locali disponibili può essere trovata in
/usr/portage/profiles/use.local.desc.
2.b. Usare le flag USE
Dichiarare flag USE permanenti
Seguono le informazioni su come dichiarare le flag USE in modo permanente.
Come precedentemente menzionato, tutte le flag USE sono dichiarate attraverso la
variabile USE. Per facilitare la ricerca e la scelta delle flag USE,
viene fornita una configurazione USE predefinita. Questa configurazione è
una collezione di flag USE che dovrebbe essere comunemente usata dagli utenti
Gentoo ed è dichiarata nei file make.defaults che fanno parte del
proprio profilo.
Il collegamento simbolico /etc/portage/make.profile punta al profilo di
sistema utilizzato. Ogni profilo lavora insieme con un altro profilo superiore,
ed il risultato è la somma di tutti i profili. Quello superiore è quello
base, (/usr/portage/profiles/base).
Dare una occhiata alle impostazioni predefinite per il profilo 10-0:
Codice 2.1: Somma delle variabili USE make.defaults per il profilo 10.0 |
USE="a52 aac acpi alsa branding cairo cdr dbus dts dvd dvdr emboss encode exif
fam firefox flac gif gpm gtk hal jpeg lcms ldap libnotify mad mikmod mng
mp3 mp4 mpeg ogg opengl pango pdf png ppds qt3support qt4 sdl spell
startup-notification svg tiff truetype vorbis unicode usb X xcb x264 xml
xv xvid"
|
Come è evidente, questa variabile contiene già una serie di parole chiave.
Non alterare nessun file make.defaults per adattare la
variabile USE alle proprie esigenze in quanto le modifiche a questi file
vengono sovrascritte ad ogni aggiornamento del Portage.
Per cambiare la configurazione predefinita, è necessario aggiungere o rimuovere
parole chiave dalla variabile USE e questo può essere fatto globalmente
definendo la variabile USE nel file /etc/portage/make.conf. In
questa variabile è possibile aggiungere le flag USE aggiuntive richieste o
rimuoverne di non richieste nel qual caso occorre anteporre alla parola chiave
il segno meno ("-").
Per esempio, per rimuovere il supporto per KDE e QT ed aggiungere il supporto
per ldap, può essere definita la seguente dichiarazione della variabile
USE in /etc/portage/make.conf:
Codice 2.2: Un esempio di dichiarazione USE in /etc/portage/make.conf |
USE="-kde -qt4 ldap"
|
Dichiarare flag USE per pacchetti individuali
Qualche volta si desidera dichiarare una determinata flag USE per una (o per
più) applicazioni ma non per tutto il sistema. Per fare questo, si deve creare
la directory /etc/portage (se ancora non esiste) e modificare
/etc/portage/package.use. Solitamente è un file singolo, ma può
essere anche una directory: vedere man portage per ulteriori
informazioni. Il seguente esempio presuppone che package.use sia un file
singolo.
Per esempio, se non si vuole che berkdb sia supportato globalmente, ma lo
si desidera per mysql, si dovrebbe aggiungere:
Codice 2.3: Esempio di /etc/portage/package.use |
dev-db/mysql berkdb
|
Si possono naturalmente anche disabilitare le flag USE per una certa
applicazione. Per esempio, se non si desidera il supporto java in PHP:
Codice 2.4: Secondo esempio di /etc/portage/package.use |
dev-php/php -java
|
Dichiarare flag USE temporanee
In certi casi è utile dichiarare flag USE una sola volta. Invece di modificare
/etc/portage/make.conf due volte (una per la modifica e l'altra per
riportare il tutto all'origine) è possibile dichiarare la variabile USE come
fosse una variabile ambiente. Ricordarsi che, quando si ri-emerge o si aggiorna
questa applicazione (in modo esplicito o parte di un aggiornamento del sistema),
i cambiamenti saranno persi!
Segue un esempio di come rimuovere temporaneamente il supporto java durante
l'installazione di mozilla.
Codice 2.5: Usare USE come una variabile ambiente |
# USE="-java" emerge seamonkey
|
Precedenza
Naturalmente esiste un ordine definito riguardante la priorità delle
dichiarazioni nelle configurazioni USE. Non è necessario dichiarare
USE="-java" solo per vedere se "java" è ancora usato per una impostazione
con un'alta priorità. L'ordine di precedenza per le impostazioni di USE è il
seguente (i primi hanno la priorità più bassa):
-
USE predefinita dichiarata nei file make.defaults parte del
proprio profilo
-
Configurazione USE definita dall'utente in /etc/portage/make.conf
-
Configurazione USE definita dall'utente in
/etc/portage/package.use
- Dichiarazione USE definita dall'utente come variabile ambiente
Per vedere la configurazione finale di USE che viene usata da Portage,
eseguire emerge --info che visualizzerà una lista di tutte le variabili
rilevanti (incluso la variabile USE) col valore usato da Portage.
Codice 2.6: Eseguire emerge --info |
# emerge --info
|
Adattare il proprio sistema alle nuove flag USE
Se si sono cambiate le proprie flag USE e si desidera aggiornare l'intero
sistema, affinchè utilizzi le nuove flag USE, si può usare l'opzione
--newuse di emerge:
Codice 2.7: Ricompilare il sistema |
# emerge --update --deep --newuse world
|
Dopo, eseguire il depclean di Portage per rimuovere le dipendenze condizionali
che erano state emerse nel vecchio sistema, ma che sono diventate obsolete con
l'uso delle nuove flag USE.
Avvertenza:
Eseguire emerge --depclean è una operazione pericolosa e dovrebbe essere
fatta con cura. Ricontrollare la lista fornita di pacchetti "obsoleti" per
assicurarsi che non si rimuovano pacchetti di cui si ha bisogno. Nell'esempio
seguente si è aggiunto -p per avere solo la lista dei pacchetti senza
rimuoverli.
|
Codice 2.8: Rimuovere pacchetti obsoleti |
# emerge -p --depclean
|
Al termine del processo di depclean, eseguire revdep-rebuild per
ricompilare le applicazioni che sono collegate in modo dinamico agli oggetti
condivisi forniti dai pacchetti rimossi. revdep-rebuild è parte del
pacchetto gentoolkit; non dimenticarsi di emergerlo prima.
Codice 2.9: Eseguire revdep-rebuild |
# revdep-rebuild
|
Quando tutto è finito, il sistema userà le nuove flag USE.
2.c. Flag USE specifiche per pacchetto
Visualizzare le flag USE disponibili
Ecco l'esempio di seamonkey per vedere quali flag sono disponibili. Per
questo usare emerge con le opzioni --pretend e --verbose:
Codice 3.1: Vedere le flag USE utilizzate |
# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB
|
emerge non è il solo strumento che fa questo, infatti ci sono strumenti
dedicati alla gestione delle informazioni sui pacchetti come equery che
fa parte del pacchetto gentoolkit. Occorre prima installare
gentoolkit:
Codice 3.2: Installare gentoolkit |
# emerge gentoolkit
|
Ora è possibile usare equery con l'argomento uses per avere la
lista dei flag USE usati da un dato pacchetto. Ad esempio per il pacchetto
gnumeric:
Codice 3.3: Usare equery per vedere le flag USE utilizzate |
# equery --nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column (U) - USE flags from make.conf ]
[ : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
U I
- - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml .
+ + gnome : Adds GNOME support
+ + python : Adds support/bindings for the Python language
- - static : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|