# Problema configurazione flags USE. [Delucidazioni finali!]

## Angelus666

Ciao a tutti!

Mi ripresento anche in questo thread. Sono un nuovo arrivato nel mondo Linux, nonchè completo niubbo in materia, visto che non ho MAI avuto a che fare con shell, prompt e compagnia bella!  :Laughing: 

Quindi da bravo testardo ho deciso di gettarmi direttamente su Gentoo, che a quanto pare è una delle distro più difficili. Ieri ho cominciato l'installazione e devo dire che tutto stava andando benino ed ero piuttosto contento perchè cominciavo a capire un pò la situazione. L'iniziale ottimismo si è frantumato davanti alla configurazione di USE!  :Sad: 

Per l'installazione sto usando la guida ufficiale, nonostante ciò non riesco a venirne a capo! Il funzionamento di USE bene o male l'ho capito, quello che mi blocca è che non riesco a capire come e dove inserire le flags che mi servono, nonchè a capire quali flags inserire (allora non c'hai capito un acca, direte voi!)!. 

Il manuale fa un esempio di flags da inserire (riferito ad una versione 2004.3 però):

USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77

        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 spell ssl svga tcpd truetype X xml2 xmms xv zlib"

Per la versione 2006.0, quali sono le flags comuni da inserire per un sistema senza particolari esigenze? Devo forse inserire tutte queste qui e disabilitare ( con "-") solo quelle che non mi servono? Oppure c'è già un file di default che li contiene tutte e devo solo specificare cosa non mi serve?

La guida lascia intendere che ci dovrebbe essere un file che contiene alcune flags USE di default (Per facilitare la ricerca e la scelta dei 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 parte del proprio profilo.). Il problema è che se faccio nano -w /etc/make.defaults questo risulta vuoto! Dove devo inserire tutte le flags? Forse in make.conf?

Un esempio. Se devo usare un masterizzatore CD e DVD, voglio ascoltare mp3, usare KDE ma non Gnome devo necessariamente inserire in make.conf la variabile USE="-gnome -gtk kde qt cdr dvdr mp3" o questi sono già attivi di default e quindi le modifiche alla flags servono solo per particolari utilizzi?

Un'altra domanda: sono corrette queste flags in make.conf considerando che ho un AMD AthlonXP?

CFLAGS="-march=athlon-xp -pipe -O2"

CHOST="qui non ricordo bene ma ho messo i686"

CXXFLAGS="-march=athlon-xp -pipe -O2"

E per finire: come faccio a ricominciare l'installazione da dove ho lasciato (ovvero dalla configurazione delle flags USE)?

Considerate che ripartirò dal CD di installazione Minimal!

Non voglio abbandonare questa impresa passando a qualche distro più facile, perchè sarebbe una sconfitta!  :Very Happy: 

Grazie a tutti!Last edited by Angelus666 on Tue Jun 06, 2006 5:45 pm; edited 4 times in total

----------

## crisandbea

puoi usare queste se vuoi,  

USE="acpi apm lm_sensors nvidia symlink X alsa gnome gtk -kde cdr dvd dvdr dvdrw cdrw 3dnow 3dnowext -oss"

qui però si usa gnome e non kde,come puoi notare... nel caso tu voglia usare kde fai -gnome, e lo togli a kde ed in più aggiungi qt.

ciao  ciao  spero di esserti stato utile, 

e benvenuto nel mondo GENTOO  :Very Happy: 

----------

## Ic3M4n

ciao e benvenuto.

posso solo dirti che l'utilizzo delle flag use è abbasanza semplice, non per questo sono un tool inutile ma bensì quello che fanno di gentoo una delle distro più flessibili e particolari. faccio una breve e concisa spiegazione: nei file /usr/portage/profile/use..desc e use.local.desc puoi trovare una breve descrizione di cosa fa ogni singola use. a dire il vero alcune anche dopo la spiegazione mi rimangono completamente sconosciute.

detto questo: se vuoi un sistema basato su kde di sicuro vorrai abilitare quello che riguarda kde e viceversa se vorrai gnome.

per quello che riguarda la posizione in cui le devi posizionare io attualmente seguo questa mia regola mentale:

- se è una use che ricorre costantemente in tutti i pacchetti od è una regola generale che volgio avere sul mio sistema la metto nel file make.conf

- se voglio creare un'eccezione a quanto specificato nel make.conf o la flag use d'interesse è semplicemente disponibile per uno o due pacchetti la specifico nel file /etc/portage/package.use che ha una sintassi del tipo: categoria/programma [-]flag-use.

il + è inutile e sottinteso nel caso in cui di fronte alla flag non ci sia nulla. 

spero di aver chiarito leggermente. comunque sempre disponibile a darti una mano. non chiedere però che flag dovresti utilizzare perchè ogni sistema è differente da un'altro ed ognuno ha necessità di configurazioni e supporti differenti.

----------

## Angelus666

Ciao crisandbea!

Quindi una flag corretta potrebbe anche essere questa?

USE="acpi apm lm_sensors nvidia symlink X alsa -gnome -gtk kde qt cdr dvd dvdr dvdrw cdrw 3dnow 3dnowext -oss bluetooth"

Con questa posso comunque usare mp3, divx, xvid, ecc.?

Dove la inserisco? Una volta inserita, posso passare al prossimo step dell'installazione (Configurazione del Kernel)?

Grazie!

----------

## Cazzantonio

guarda che gentoo alla fin fine non è difficile... ok installarla è un po' lunga ma poi è tutta in discesa   :Smile: 

allora andiamo per ordine...

intanto ti consiglio di leggere bene e con attenzione

```
man portage

man emerge

man make.conf
```

sono scritti bene e spiegano praticamente tutto quello che c'è da sapere sul funzionamento base di gentoo

LE USE:

le use flag servono per personalizzare l'installazione di ogni programma in modo di attivare solo quelle funzionalità che ti servono (sistema più snello e personalizzato).

Se emergi questi programmi

```
app-portage/portage-bashrc

app-portage/splat

app-portage/eix

app-portage/portagemaster

app-portage/genlop

app-portage/portage-manpages

app-portage/euses

app-portage/gentoolkit
```

(in sostanza quello importante è gentoolkit) troverai diversi strumenti utili per gestire anche le useflag.

per esempio il comando 

```
euse -i nomeflag
```

ti da tutte le informazioni che necessiti su una determinata flag chiamata nomeflag nell'esempio. ovviamente vale la regola "se non sai cosa fa allora probabilmente non ti serve"   :Wink: 

Le use flag si dividono in globali e locali.

Le prime valgono per diversi pacchetti, le seconde servono solo a pochi pacchetti (più spesso ad uno solo)

quando usi il comando emerge con l'opzione -pv ti vengono visualizzatele use flag utilizzate dai pacchetti (in rosso quelle già attive, in blu quelle non attive, in verde quelle che hai cambiato da poco e che verranno attivate appena riemergi il pacchetto)

con 

```
emerge -vDuN world 
```

 riemergi tutti i pacchetti di cui hai cambiato le use flag (se fai un cambio di useflag... usa magari l'opione -p per vedere che pacchetti sono prima di lanciare l'emerge e magari anche il comando revdep-rebuild dopo che hai fatto l'aggiornamento per essere sicuro che tutto sia apposto)

le useflag possono essere impostate nel make.conf, oppure nel file /etc/portage/package.use (crealo se non esiste) per specificarle singolarmente per ogni singolo pacchetto.

per esempio questo è il mio make.conf:

```
CHOST="i686-pc-linux-gnu"

CFLAGS="-O2 -march=athlon-xp -mfpmath=sse,387 -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

LDFLAGS="-Wl,-O1"

# Qua ci vanno solo le use globali; le locali sono in /etc/portage/package.use

USE="mmx 3dnow sse acpi nptl gtk gtk2 dvd dvdr cdr alsa usb ieee1394 unicode ipv6 gnutls directfb ppds fbcon offensive crypt java jikes jpeg tiff gif png wmf mp3 flac mad xvid ffmpeg theora ogg vorbis matroska opengl v4l svg dvdread vcd a52 dv kdeenablefinal -xmms -pdflib -apm -hal -gnome -eds -kde -qt -arts -esd -oss -jack"

LINGUAS="it"

CONFIG_PROTECT="/etc/env.d/02locale"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

GENTOO_MIRRORS="http://mirror.switch.ch/mirror/gentoo/ http://trumpetti.atm.tut.fi/gentoo/ http://www.die.unipd.it/pub/Linux/distributions/gentoo-sources/ ftp://mirror.switch.ch/mirror/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/"
```

e questo è il mio package.use:

```
sys-libs/glibc userlocales nptlonly linuxthreads-tls glibc-omitfp

sys-devel/gcc fortran gcj objc

media-gfx/gimp gimpprint

media-video/mplayer 3dnowext mmxext v4l2 rtc xanim live xvmc cpudetection win32codecs

media-libs/xine-lib win32codecs xvmc asf

media-video/vlc httpd vlm stream freetype

dev-java/blackdown-jdk nsplugin

net-misc/openssh chroot

dev-libs/DirectFB sysfs

media-libs/win32codecs real

x11-misc/xscreensaver new-login

gnome-base/nautilus -flac -gstreamer -mad -oggvorbis

mail-mta/msmtp mailwrapper sasl

x11-apps/ati-drivers-extra qt

sci-visualization/gnuplot plotutils

app-cdr/k3b css

app-editors/nano justify

dev-lisp/gcl ansi custreloc dlopen gprof

sci-mathematics/maxima gcl

x11-terms/xterm toolbar

app-text/xpdf nodrm

sys-fs/ntfsprogs fuse

sys-apps/man-pages -nls

#roba per gnome

gnome-extra/yelp firefox

#altrimenti fa il downgrade dei codec matroska e installa wxGTK

media-video/lives -matroska
```

conta che io non uso ne' gnome ne' kde (uso windowmaker) quindi ho impostato delle flag per ridurre al minimo l'installazione di questi wm (siccome comunque uso dei programmi che ne fanno parte...)

gnome è installato ma solo la versione light (pacchetto gnome-light) e solo perché lo usa mia madre... non uso hal ne altre cose fighe per fare l'automount dei device.

infatti noterai come nel mio make.conf siano disabilitate le seguenti flag (c'è un - davanti):

```
-xmms -pdflib -apm -hal -gnome -eds -kde -qt -arts -esd -oss -jack
```

se usi gnome potresti voler abilitare le flag hal, gnome e esd, mentre per kde potresti volere hal, kde, qt e arts

in package.use ho anche ridotto al minimo le funzionalità di nautilus (il filemanager di gnome) perché non lo uso ed è installato solo come dipendenza:

```
gnome-base/nautilus -flac -gstreamer -mad -oggvorbis
```

Sentiti libero di sperimentare e benvenuto nel mondo gentoo   :Very Happy: 

per esperienza personale ti consiglio di non giocare troppo con le cflags (le ottimizzazioni del compilatore) perché in realtà quello che si guadagna è irrisorio (spesso invisibile ad occhio nudo) e perché rischi solo problemi in più.

addirittura potresti usare delle opzioni più generiche tipo

```
CFLAGS="-O2 -march=i686 -mmmx  -msse -mfpmath=sse -pipe -fomit-frame-pointer"
```

per garantire la compatibilità con qualsiasi processore dal pentium2 in su e con praticamente nessun calo prestazionale visibile (io stesso le ho usate per diverso tempo e sono passato alle attuali nemmeno mi ricordo perché... forse ho ricompilato e ho messo le prime che mi sono venute in mente...)

----------

## crisandbea

la flag USE che ho postato e quella che uso io attualmente sul mio portatile, ed è un amd athlon come il tuo, quindi non  dovresti avere problemi. ciao

----------

## Nuitari

aggiungo solo, se hai problemi particolari con le use per certi pacchetti, entra pure nel canale irc di gentoo: server irc.azzurra.org, canale #gentoo

le mie use ad esempio per un sistema basato su kde e amd64 sono:

USE="-doc kdeenablefinal -mozilla -ipv6 -arts X aac aalib alsa cdr cups dbus dri dvd dvdr usb

foomaticdb nptl nptlonly qt dvdread hal java opengl usb nvidia -gnome kde 3dnow"

sinceramente privilegio settare manualmente le use per ogni pacchetto, e tenere poche use globali nel make.conf. Certo, detta così sembra una palla incredibile da nerdoni, ma ti assicuro che se lo fai con calma quando uno ha tempo ed aggiorna i pacchetti in qualche mesetto ottieni la tua lista su package.keywords senza troppi problemi  :Smile: 

benvenuto su gentoo!

----------

## bender86

 *Angelus666 wrote:*   

> Un esempio. Se devo usare un masterizzatore CD e DVD, voglio ascoltare mp3, usare KDE ma non Gnome devo necessariamente inserire in make.conf la variabile USE="-gnome -gtk kde qt cdr dvdr mp3" o questi sono già attivi di default e quindi le modifiche alla flags servono solo per particolari utilizzi?

 Normalmente le use flags servono a compilare un pacchetto con determinate opzioni. Per esempio, se devo installare php e mi serve il supporto per le sessioni, aggiungo la flag session, oppure se voglio abilitare l'integrazione di un programma con kde, aggiungo la flag kde. Quando installi qualcosa, usa il comando emerge -pv qualcosa per vedere quali flag possono influenzare quel programma. Se per caso hai disabilitato la flag per kde, ma vuoi installare qualcosa che abbia bisogno delle sue librerie, dovrai installare anche loro (es. k3b non funziona senza kdelibs), quindi non pensare che usare -gnome ti precluda la possibilità di usare programmi per gnome.

Grosso modo puoi lasciare le flag di default, e se ti serve il supporto per altre opzioni, aggiungi la flag relativa in /etc/make.conf. Stessa cosa se vuoi togliere il supporto per qualcosa (quello che imposti nel make.conf non sovrascrive le impostazioni di default, ma viene aggiunto ad esse). Dovresti evitare di modificare flag che non sai a cosa servono (un esempio? pam).

Qualcuno ti ha consigliato di leggere i manuali di emerge, portage e quant'altro. Se non ti va a genio l'interfaccia di man, sono disponibili su http://gentoo-wiki.com/. Io darei un'occhiata anche a questo, questo e a tutti gli altri articoli che ti possono aiutare.

 *Angelus666 wrote:*   

> Un'altra domanda: sono corrette queste flags in make.conf considerando che ho un AMD AthlonXP?
> 
> CFLAGS="-march=athlon-xp -pipe -O2"
> 
> CHOST="qui non ricordo bene ma ho messo i686"
> ...

 Dovrebbero andare bene.

CHOST="i686-pc-linux-gnu". Non cambiarlo mai.

 *Angelus666 wrote:*   

> E per finire: come faccio a ricominciare l'installazione da dove ho lasciato (ovvero dalla configurazione delle flags USE)?
> 
> Considerate che ripartirò dal CD di installazione Minimal!

 Fai partire il livecd (se ti serve, configuri la rete), individui la partizione su cui hai iniziato l'installazione e la monti in /mnt/gentoo (e monti altre eventuali partizioni aggiuntive, tipo /boot se l'hai separata). Poi monti /proc e fai il chroot e continui qui.

----------

## Angelus666

Grazie a tutti quanti!

Allora, vediamo se ho capito bene.

Le flags USE globali (valide per tutte gli emerge) vanno inserite in /etc/portage/make.conf. Quelle locali (valide soltanto per alcuni pacchetti) in /etc/portage/package.use.

Se non specifico alcuna flags USE, durante l'emerge dei programmi questi verranno compilati compatibilmente con tutte le funzioni? Se invece in make.conf specifico, per esempio, "kde mp3 dvd" vuol dire che tutte le altre funzioni non saranno supportate? Perchè quando voglio disabilitare un supporto di funzione devo mettere "-"? Non posso semplicemente non inserirlo nella flag?

----------

## Ic3M4n

no. hai sbagliato molte cose...

il file è /etc/make.conf

se non specifichi nulla viene compilato con le opzioni di default. quelle che metti tu vanno a sovrascrivere in parte o in toto le opzioni di default.

ripeto... man portage è tuo amico.

----------

## Cazzantonio

durante l'installazione (manuale) ti viene chiesto di creare il link al profilo da te scelto.

Il nome del link è /etc/make.profile e punta a /usr/portage/profiles/default-linux/x86/2006.0/ (se hai scelto il profilo più aggiornato, altrimenti ad un'altro dei profili compatibili con la tua architettura)

Il profilo scelto determina tutta una serie di opzioni di base tra cui pacchetti compatibili/incompatibili con un dato profilo (alcuni pacchetti possono essere installati solo se scegli un profilo ppc mentre non saranno disponibili per un x86 ad esempio...) e anche le USE flag di default

Se non specifichi niente emerge usa quelle di default, make.conf e package.use servono per cambiare le impostazioni di default.

----------

## Angelus666

Quindi se io specifico "kde", gnome continuera' ad essere compatibile. Se invece uso "kde -gnome" allora gnome non sara' supportato? Questo perche' le flags specificate in make.conf hanno una priorita' piu' alta di quelle di default? Se e' cosi' allora ho capito bene o male come funziona. Devo solo raccapezzarmi di tutte le flags che esistono e capire quali mi servono e quali mi serviranno.Last edited by Angelus666 on Sat May 20, 2006 6:36 pm; edited 1 time in total

----------

## Luca89

 *Angelus666 wrote:*   

> Passando all'installazione. Non riesco a ripristinarla! Ricominciando dal capitolo 6a codice:3 della guida ufficiale, ovvero la copia dei DNS, mi dice "cp: cannot create regular file `/mnt/gentoo/etc/resolv.conf`: no such file or directory". Devo forse ricominciare da qualche capitolo prima? Grazie ancora per la pazienza che state dimostrando nell'aiutare un profano come me!

 

Devi prima fare la parte del montaggio dei filesystem (solo montaggio, non formattare ne partizionare nulla), dopodiché fai il chroot (è pure spiegato) e salti al punto dove ti eri fermato.

----------

## bender86

 *Angelus666 wrote:*   

> Quindi se io specifico "kde", gnome continuera' ad essere compatibile. Se invece uso "kde -gnome" allora gnome non sara' supportato?

 Non proprio, semplicemente i programmi che hanno un supporto opzionale per gnome verranno compilati senza quel supporto. I programmi che invece hanno un supporto non opzionale per gnome verranno compilati comunque con quel supporto.

 *Angelus666 wrote:*   

> Devo solo raccapezzarmi di tutte le flags che esistono e capire quali mi servono e quali mi serviranno.

 Per la prima installazione mi limiterei a cambiare solo ciò di cui sono sicuro. In ogni caso qua sono spiegate quelle più comuni.

----------

## codadilupo

mi aggiungo a tutto quello che ti hanno già detto, segnalando un particolare. Il file in cui trovi le use predefinite e' /etc/make.profile/make.defaults.

Se non trovi questo file, o è vuoto, è probabile che:

1) tu non habbia scompattato correttamente lo stage scelto precedentemente

2) tu non stia lavorando in chroot -->> ATTENZIONE! in questo caso al riavvio non avrai installato assolutamente nulla, sul pc!

Coda

----------

## Cazzantonio

tranquillo... via via vedrai di cosa hai bisogno (quelle di default sono sufficienti per un'installazione funzionante).

comunque qualsiasi cambiamento alle use flags tu abbia intenzione di fare emerge -pvDuN world (togli la "p" per emergere davvero) ti farà vedere tutti i pacchetti che verrebbero ricompilati per far fronte al cambiamento di use

----------

## Angelus666

Allora, torno adesso dall'installazione (fiuuuuu  :Wink: )!

-Come flag USE ho scelto:

```
USE="3dnow a52 aac alsa arts bluetooth dvd dvdr dvdread encode ftp gif -gnome -gtk -gtk2 hal java javascript jpeg kde lm_sensors mad mmx mozilla mp3 mpeg msn opengl pdf png qt quicktime scanner usb vcd vorbis win32codecs xml xvid divx4linux nvidia kdeenablefinal X"
```

-Nella configurazione del kernel ho fatto il possibile, visto che molte cose non le capivo. Ho abilitato il supporto framebuffer "nvidiafb", visto che ho una nVidia 6600 GT. Come posso inserire la stringa di framebuffer nel file di configurazione di GRUB? Nella guida lo spiega solo per supporti "vesafb".

edit: ho spostato l'altra "fetta" di thread!  :Very Happy: 

edit2: Grazie a tutti per aver fatto luce su queste fantomatiche flags!  :Laughing: Last edited by Angelus666 on Sun May 21, 2006 2:26 am; edited 3 times in total

----------

## Ic3M4n

ogni thread un problema, secondo le linee guida. per favore aprine un'altro con questo problema. tks   :Wink: 

----------

## ercoppa

Mi accodo per fare una domanda stupida per una USE flag che ho scoperto in questo 3d. Vorrei sapere ma la use kdeenablefinal (Makes kde ebuilds use the enable-final flag, yielding big compilation speedups at the cost of very heavy mem usage) userebbe molta memoria (ram?) durante la compilazione? o durante poi l'uso dell'applizazione stessa?

----------

## bender86

 *ercoppa wrote:*   

> Mi accodo per fare una domanda stupida per una USE flag che ho scoperto in questo 3d. Vorrei sapere ma la use kdeenablefinal (Makes kde ebuilds use the enable-final flag, yielding big compilation speedups at the cost of very heavy mem usage) userebbe molta memoria (ram?) durante la compilazione? o durante poi l'uso dell'applizazione stessa?

 

Solo durante la compilazione. Io ho avuto problemi (out of memory) con kdelibs su un sistema con 128 Ram + 256 swap e ho risolto aggiungendo 400 MiB di swap.

----------

## Angelus666

Allora, ho dato una "scrematina" alle flags USE di /etc/make.conf:

```
USE="3dnow a52 aac bluetooth dvd dvdr dvdread ftp -gnome -gtk -gtk2 hal java javascript lm_sensors mmx mozilla msn scanner usb vcd win32codecs xvid divx4linux nvidia kdeenablefinal"
```

In particolare ho messo "a52 aac dvd dvdr dvdread" perchè voglio leggere qualunque tipo di formato di film in DVD.

Ho volutamente disabilitato il supporto di gnome, gtk e gtk2, perchè non voglio usare gnome e se qualche pacchetto richiedesse obbligatoriamente il supporto a questi 3 "cosi", a quanto ho capito verrebbe abilitato ugualmente, visto che il supporto non è "opzionale" ma "fondamentale" (spero di aver capito bene).

Tutte le flags che ho messo mancano nel default del sistema, quindi non c'è nessuna ripetizione. Infatti, pur volendo usare KDE l'ho omesso perchè già c'è in default.

Quando dovrò emergere qualche pacchetto, digiterò emerge -pv nome_pacchetto in modo da sapere che flags USE richiede quel dato pacchetto, per poi, di conseguenza, digitare USE="flag_richiesta" emerge nome_pacchetto, oppure in /etc/portage/package.use aggiungere le flags al pacchetto scelto o alla categoria.

Utto giusto, utto giusto?  :Laughing: 

----------

## Ic3M4n

utto giusto   :Wink: 

----------

## Scen

 *Angelus666 wrote:*   

> Quando dovrò emergere qualche pacchetto, digiterò emerge -pv nome_pacchetto in modo da sapere che flags USE richiede quel dato pacchetto, per poi, di conseguenza, digitare USE="flag_richiesta" emerge nome_pacchetto, oppure in /etc/portage/package.use aggiungere le flags al pacchetto scelto o alla categoria.

 

Mi permetto di farti un piccolo appunto   :Razz:   riguardo l'operazione

```

USE="flag_richiesta" emerge nome_pacchetto

```

in quanto l'utilizzo di questa sintassi è deprecata, devi invece utilizzare (come giustamente scrivi successivamente) /etc/portage/package.use

----------

