# Tool per visualizzare USE

## socksz

Salve signori,

sono alla ricerca di un tool che mi dica con quali USE ho compilato un determinato pacchetto.

Ne conoscete percaso?

Saluti

----------

## Onip

puoi provare con

```
# emerge nomepacchetto -pv
```

Oppure con

```
# equery u nomepacchetto
```

Byez

----------

## Peach

trovo che

```
# equery uses <nomepacchetto>
```

sia il più funzionale: ti dice cosa hai attualmente attivato e le flag usate al momento della compilazione.

----------

## socksz

Grazie mille a tutti e due.. e' proprio quello che cercavo.

scusate un secondo..

```
emerge -pv vim

[ebuild   R   ] app-editors/vim-7.0.17  USE="gpm nls perl python -acl -bash-completion* -cscope* -minimal -mzscheme -ruby -vim-pager* -vim-with-x*" 0 kB

```

le USE con l'asterisco son quelle che uso per il dato pacchetto quindi?

Salut

----------

## federico

 *socksz wrote:*   

> Grazie mille a tutti e due.. e' proprio quello che cercavo.
> 
> scusate un secondo..
> 
> ```
> ...

 

Quelle verdi con l'asterisco sono quelle che stai aggiungendo in questo pacchetto e che prima non avevi. Le use col - sono quelle che non hai e quelle gialle col % sono use che nella versione precendente del pacchetto non esistevano.

Ciao, Federico

----------

## socksz

Ok grazie.

Pero' il non sto aggiungendo le flag USE che vedo con l'asterisco.. sono quelle che avevo usato per compilare VIM, ma ora le ho levate dal mio make.conf.

Quindi mi fa vedere quelle che sto adoperando.. credo..

----------

## Peach

 *socksz wrote:*   

> Ok grazie.
> 
> Pero' il non sto aggiungendo le flag USE che vedo con l'asterisco.. sono quelle che avevo usato per compilare VIM, ma ora le ho levate dal mio make.conf.
> 
> Quindi mi fa vedere quelle che sto adoperando.. credo..

 

mi pare ci sia un problema di fondo...

le USE che appaiono quando usi emerge --verbose sono quelle attualmente in uso nel sistema.

se ti serve qualcosa per modificare le USE system-wide, per l'intero sistema, ti posso consigliare ufed

In ogni caso ti consiglio la lettura del manuale di portage per quanto riguarda la gesitone delle USE

FLAG USE

ottima lettura

----------

## Kernel78

Le USE che appaiono con l'asterisco sono quelle che sono variate da quando è stato installato il pacchetto, se hanno il meno davanti significa che sono state tolte, altrimenti sono state aggiunte.

In ogni caso sarebbe bene fare un bellissimo 

```
emerge -uDavN world
```

così almeno puoi avere un sistema coerente.

----------

## socksz

Scusa una delucidazione..

ma ho provato a lanciare il comando che mi hai detto,

ma ho visto che molti pacchetti son "marcati" con la R ovvero che li dovrebbe sostituire.

Ma come mai ricompila anche quelli che ho gia'? C'e' un utilita'?

Non sarebbe meglio solo upgradare quelli che son marcati con la U?

Saluti

----------

## Peach

 *socksz wrote:*   

> Scusa una delucidazione..
> 
> ma ho provato a lanciare il comando che mi hai detto,
> 
> ma ho visto che molti pacchetti son "marcati" con la R ovvero che li dovrebbe sostituire.
> ...

 

il tutto è dovuto alla flag -N (newuse)

con il cambio recente del profilo (se l'hai fatto) o comunque se hai cambiato delle flag a livello di sistema nel corso del tempo è normale ti richieda di ricompilare dei pacchetti.

A volte conviene usare -N altre volte no. 

Vedi te.

----------

## Kernel78

 *Peach wrote:*   

> A volte conviene usare -N altre volte no. 
> 
> Vedi te.

 

Scusa ma in quali casi non covverrebbe   :Shocked:   :Shocked:   :Shocked: 

Se hai delle USE che non corrispondono a quelle dei pacchetti installati hai un sistema incoerente ...

Se vuoi che un pacchetto abbia delle USE diverse da quelle definite in make.conf le specifichi nel package.use ma non lasci il sistema a metà ... tranne nel caso in cui tu voglia crearti dei problemi ... un emerge --deplcean farebbe faville  :Laughing: 

@socksz

La R è presente dove ci sono dei pacchetti che devono essere ricompilati perchè sono stati compilati con delle USE diverse da quelle di sistema, puoi ricompilarli o modificare le USE di sistema affinchè sia ripristinata la situazione del momento in cui hai installato quei pacchetti.

----------

## Peach

 *Kernel78 wrote:*   

>  *Peach wrote:*   A volte conviene usare -N altre volte no. 
> 
> Vedi te. 
> 
> Scusa ma in quali casi non covverrebbe     

 

ecco un esempio:

```
# emerge -DuavN world

These are the packages that would be merged, in order:

[ebuild   R   ] sys-apps/file-4.17-r1  USE="python (-build%)" 543 kB

[ebuild   R   ] dev-perl/XML-Parser-2.34  USE="(-minimal%)" 224 kB

[ebuild   R   ] media-libs/mesa-6.4.2-r2  USE="motif -debug -doc% -hardened" VIDEO_CARDS="-i810 -mach64 -mga -none -r128 -radeon -s3virge -savage -sis (-sunffb) -tdfx -trident -via" 2,844 kB

[ebuild   R   ] net-www/apache-2.0.58-r2  USE="apache2 mpm-prefork ssl -debug -doc -ldap -mpm-itk -mpm-leader -mpm-peruser -mpm-threadpool -mpm-worker (-selinux) -static-modules -threads (-no-suexec%)" 0 kB

[ebuild   R   ] net-print/foomatic-db-engine-3.0.2  USE="(-minimal%)" 279 kB

[ebuild   R   ] dev-perl/Compress-Zlib-1.41  USE="(-minimal%)" 148 kB

[ebuild   R   ] dev-perl/IO-Zlib-1.04  USE="(-minimal%)" 9 kB

[ebuild   R   ] dev-perl/Net-Daemon-0.38  USE="(-minimal%)" 30 kB

[ebuild   R   ] dev-perl/PlRPC-0.2018  USE="(-minimal%)" 17 kB

[ebuild   R   ] dev-perl/DBI-1.50  USE="(-minimal%)" 377 kB

[ebuild   R   ] dev-perl/IO-String-1.08  USE="(-minimal%)" 7 kB

[ebuild   R   ] dev-perl/Archive-Tar-1.28  USE="(-minimal%)" 35 kB

[ebuild   R   ] dev-perl/Socket6-0.17  USE="(-minimal%)" 38 kB

[ebuild   R   ] dev-perl/IO-Socket-INET6-2.51  USE="(-minimal%)" 9 kB

[ebuild   R   ] dev-perl/HTML-Tagset-3.10  USE="(-minimal%)" 7 kB

[ebuild   R   ] dev-perl/HTML-Parser-3.48  USE="unicode (-minimal%)" 80 kB

[ebuild   R   ] dev-perl/URI-1.35  USE="(-minimal%)" 93 kB

[ebuild   R   ] dev-perl/HTML-Tree-3.19.01  USE="(-minimal%)" 116 kB

[ebuild   R   ] dev-perl/libwww-perl-5.803-r1  USE="ssl (-minimal%)" 229 kB

[ebuild   R   ] dev-perl/IO-Socket-SSL-0.97  USE="(-minimal%)" 31 kB

[ebuild   R   ] dev-perl/Net-IP-1.24  USE="(-minimal%)" 25 kB

[ebuild   R   ] perl-core/digest-base-1.13  USE="(-minimal%)" 7 kB

[ebuild   R   ] dev-perl/Digest-SHA1-2.11  USE="(-minimal%)" 37 kB

[ebuild   R   ] dev-perl/Digest-HMAC-1.01-r1  USE="(-minimal%)" 13 kB

[ebuild   R   ] dev-perl/Net-DNS-0.53-r1  USE="ipv6 (-minimal%)" 116 kB

[ebuild   R   ] dev-perl/DateManip-5.44  USE="(-minimal%)" 138 kB

[ebuild   R   ] dev-perl/TermReadKey-2.30  USE="(-minimal%)" 36 kB

[ebuild   R   ] app-crypt/pinentry-0.7.2-r2  USE="gtk ncurses -qt3% (-qt%)" 389 kB

[ebuild   R   ] sys-apps/net-tools-1.60-r11  USE="nls -static (-build%)" 220 kB

[ebuild   R   ] gnome-base/gnome-libs-1.4.2  USE="nls -doc -esd% -kde" 2,807 kB

[ebuild   R   ] dev-perl/XML-Writer-0.600  USE="(-minimal%)" 21 kB

[ebuild   R   ] dev-perl/gtk-perl-0.7009-r2  USE="opengl -gnome -gnome-print -gtkhtml (-applet%) (-minimal%)" 436 kB

[ebuild   R   ] dev-perl/Event-1.06  USE="(-minimal%)" 245 kB

[ebuild   R   ] dev-perl/libintl-perl-1.11  USE="(-minimal%)" 535 kB

[ebuild   R   ] media-video/dvdrip-0.52.7-r1  USE="cdr ogg rar xvid -gnome -mplayer -subtitles (-minimal%)" 513 kB

[ebuild   R   ] dev-perl/libxml-perl-0.08  USE="(-minimal%)" 62 kB

[ebuild   R   ] dev-perl/XML-RegExp-0.03-r1  USE="(-minimal%)" 3 kB

[ebuild   R   ] dev-perl/XML-DOM-1.44  USE="(-minimal%)" 114 kB

[ebuild   R   ] dev-perl/Parse-Yapp-1.05-r1  USE="(-minimal%)" 46 kB

[ebuild   R   ] dev-perl/XML-XQL-0.68  USE="(-minimal%)" 117 kB
```

 *Kernel78 wrote:*   

> Se hai delle USE che non corrispondono a quelle dei pacchetti installati hai un sistema incoerente ...

 

si infatti mi riferivo proprio al caso particolare del nuovo profilo. (vedi sopra)

----------

## socksz

Quindi scusa..

io non ho toccato le USE globali, pero' per alcuni pacchetti ho ricompilato con delle date USE..

tipo VIM con vim-pager e gtk o altre cose..

E cosi' se ora facessi emerge -aDuNv world

mi ricompilerebbe vim (ad esempio) con le USE di default giusto? (visto che non ho un package.use e non ho editato le USE di sistema)..

Se fosse cosi' farei un gran casino perche' mi ricompilerebbe tutti i pacchetti che avevo compilato con delle USE specifiche allo stato di default, o no?

----------

## Peach

 *socksz wrote:*   

> visto che non ho un package.use e non ho editato le USE di sistema

 

del tipo che sarebbe cosa buona e giusta iniziare ad usare package.use  :Wink: 

----------

## Kernel78

Concordo con Peach per quanto riguarda l'uso del file package.use ma non per il cambio di profilo ...

Se cambi un profilo lo fai per un motivo ben preciso e quindi anche il cambio di USE è qualcosa che dovrebbe interessarti ma se non ti interessano le USE cambiate modifichi make.conf o package.use ma non lasci un sistema a metà ...

Tu cosa suggeriresti di fare nell'esempio che hai citato tu ? lasciare tutto così fino a quando i pacchetti non vengono aggiornati normalmente ?

/EDIT: cmq se ritieni che in un unico caso particolare non serva o non convenga specificalo, non dire :"vedi te" altrimenti generei ancora più confusione ...

----------

## Peach

 *Kernel78 wrote:*   

> /EDIT: cmq se ritieni che in un unico caso particolare non serva o non convenga specificalo, non dire :"vedi te" altrimenti generei ancora più confusione ...

 

hai ragione.

Nel mio caso mi si ripresentano dei pacchetti da ricompilare con delle flag che prima non c'erano e che lasciano la situazione esattamente come prima. Il caso normale è dover ricompilare un pacchetto con flag cambiate durante il corso di vita del sistema. Che poi saltino fuori effetti come quello che ho riportato mi sa che non c'è soluzione: io ritengo sia giusto pensarci proprio quando serve.

----------

## socksz

Insomma ho letto i vostri post.

Quindi capisco che dovrei dare un emerge -avDuN world, emerge --depclean e revdep-rebuild

cosi' aggiornerei il sistema come si deve, appena finito dovrei ricompilare ogni pacchetto con le USE che voglio e salvarle in package.use per usi futuri, ok.

Grazie   :Wink: 

PS: correggetemi se sbaglio !

----------

## Onip

Ti conviene mettere subito le use che vuoi in package.use. poi una bella aggiornata con

```
# emerge -DuNav world

# emerge --depclean -p <-- controllare la lista

# emerge --depclea  <-- se la lista di sopra è corretta
```

Dopodichè un

```
# revdep-rebuild
```

 che non guasta mai

Così ti eviti di compilare 2 volte certi pacchetti

Byez

----------

## socksz

Per curiosita', potreste postarmi qualche vostro make.conf (la parte riguardante le USE) e il vostro package.use perfavore?

Comunque per decidere cosa mettere nel package.use avevo pensato di guardare con emerge -pv i pacchetti che ho installato (e che ricordo) con alcune USE

definite da me.

Ciao

----------

## Ic3M4n

scusa... ma anche se io mettessi qui il mio make.conf ed il package.use cosa cambierebbe? di sicuro l'utilizzo che ne faccio io del pc sarà differente dal tuo. quindi non vedo come possa esserti d'aiuto il mio make.conf.

cmq io in make.conf ho questo.

```
NEGATIVE_USE="-gcj -qt -qt3 -qt4 -kde -arts -ipv6 -perl -apm -samba -mozilla -nas -esd -mysql"

USE="${NEGATIVE_USE} dga minimal dri acpi mmx sse sse2 hal dbus mono doc unicode firefox cairo pic"
```

----------

## socksz

A me non e' ben chiaro per cui bisogna utilizzare alcune USE nel make.conf.

Cioe', come mai vuoi abilitare (dove si puo' ovviamente) dappertutto la USE firefox, acpi, unicode etc?

E' una domanda di chiarimento eh!

Comunque con l'ottimo tool equery (con cui vedo con che USE ho compilato alcuni programmi) sto scrivendo il mio package.use.

Ah una cosa.. nel caso andasse male l'emerge world?

Cioe' c'e' una possibilita' che al riavvio qualcosa mi dia qualche problema?

Grazie per la disponibilita'.

Ciao

----------

## Ic3M4n

esempio: ci sono due file all'interno di /usr/portage/profile che spiegano a grosse linee cosa fanno le use. uno è use.desc l'altro use.local.desc. il local contiene solo use che si abilitano su pochi pacchetti, l'altro a molti. buona norma sarebbe scrivere le use per i singoli pacchetti in package.use e quelle che servono per tanti in make.conf.

per esempio io ho disabilitato globalmente le qt3 e qt4 però le ho installate perchè sono richieste da opera. quindi le use flag non vanno ad influenzare scelte logiche che tu attui, come in questo caso: opera richiede le qt in toto e quindi le installa. potresti avere sotto questo punto di vista dei problemi nel caso in cui un programma che ti serve volesse essere compilato contro un programma che richiede una determinata use-flag attiva, ma di solito viene chiarito dall'errore in fase di compilazione.

----------

## socksz

Ok grazie.

Ora metto a posto package.use, emergo il mondo e ti faccio sapere.

Ciao

----------

## socksz

Uhm avrei un problema.

Il mio package.use:

```
app-editor/vim bash-completion cscope gpm nls perl python vim-pager vim-with-x
```

Quando provo a vedere con quali USE verrebbe installato vim appare:

```
osiris socksz # emerge -pv vim

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] app-editors/vim-7.0.17  USE="gpm nls perl python -acl -bash-completion* -cscope* -minimal -mzscheme -ruby -vim-pager* -vim-with-x*" 0 kB

Total size of downloads: 0 kB
```

Cosa sbaglio?

Ciao

----------

## Peach

è

 *Quote:*   

> app-editors

 

----------

## socksz

Grazie, errore di distr[a|u]zione   :Wink: 

----------

## socksz

Scusate, ultima cosa.

```
# equery u gcc

[ Searching for packages matching gcc... ]

[ 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 sys-devel/gcc-4.1.1 ]

 U I

 - - altivec   : Adds support for optimizations for G4 and G5/ppc970 processors

 - - bootstrap : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used during original system bootstrapping

 - - build     : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping.

 - - doc       : Adds extra documentation (API, Javadoc, etc)

 + + fortran   : Adds support for fortran (formally f77)

 - - gcj       : Enable building with gcj (The GNU Compiler for the Javatm Programming Language)

 - - gtk       : Adds support for x11-libs/gtk+ (The GIMP Toolkit)

 - - hardened  : activate default security enhancements for toolchain (gcc, glibc, binutils)

 - - ip28      : Enable building a compiler capable of building a kernel for SGI Indigo2 Impact R10000 (IP28)

 - - ip32r10k  : Enable building a compiler capable of building an experimental kernel for SGI O2 w/ R1x000 CPUs (IP32)

 - - mudflap   : Add support for mudflap, a pointer use checking library

 - - multilib  : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries

 - - multislot : Allow for SLOTs to include minor version (3.3.4 instead of just 3.3)

 - - n32       : Enable n32 ABI support on mips

 - - n64       : Enable n64 ABI support on mips

 + + nls       : Adds Native Language Support (using gettext - GNU locale utilities)

 - - nocxx     : Disable support for C++ (DON'T USE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)

 - - objc      : Build support for the Objective C code language

 - - objc++    : Build support for the Objective C++ language

 - - objc-gc   : Build support for the Objective C code language Garbage Collector

 - - vanilla   : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
```

E' possibile NON ricompilare GCC (e altri pacchetti che non cambierebbero) per evitare di perdere tempo visto che non ho aggiunto nessuna flag USE ?

Se si', come?   :Wink: 

Ciao

EDIT: come posso usare ccache in questo caso? ccache emerge -aDNuv world ?

Grazie ciao!

----------

## Ic3M4n

tu lanci un'emerge -uDN world, se non hai modificato nessuna use non te lo ricompila. tutto lì, o mi sono perso qualcosa?

----------

## socksz

```
# emerge -auDN world

These are the packages that would be merged, in order:

Calculating world dependencies... done!

[ebuild     U ] dev-lang/python-2.4.3-r2 [2.4.3-r1] USE="-threads%"

[ebuild     U ] sys-kernel/linux-headers-2.6.17-r1 [2.6.11-r2] USE="-gcc64%"

[ebuild   R   ] sys-apps/sysvinit-2.86-r5

[ebuild     U ] sys-apps/baselayout-1.12.5 [1.12.1]

[ebuild   R   ] sys-kernel/gentoo-sources-2.6.17-r8  USE="-symlink*"

[b][ebuild   R   ] sys-devel/gcc-4.1.1  USE="-test%"[/b]

[ebuild     U ] sys-libs/timezone-data-2006g [2006a]

[ebuild     U ] mail-mta/ssmtp-2.61-r2 [2.61]

[ebuild     U ] sys-apps/module-init-tools-3.2.2-r1 [3.2.1] USE="-no-old-linux%"

[ebuild   R   ] sys-apps/file-4.17-r1

[ebuild     U ] sys-libs/com_err-1.39 [1.38]

[ebuild     U ] sys-libs/ss-1.39 [1.38]

[ebuild     U ] sys-fs/e2fsprogs-1.39 [1.38-r1]

[ebuild     U ] sys-apps/util-linux-2.12r-r4 [2.12r-r3]

[ebuild     U ] sys-libs/libutempter-1.1.4.1 [1.1.2.1]

[ebuild   R   ] media-libs/smpeg-0.4.4-r7  USE="-opengl*"

[ebuild     U ] net-misc/neon-0.26.1-r1 [0.26.1]

[ebuild     U ] net-misc/openssh-4.3_p2-r4 [4.3_p2-r1] USE="-X% -ldap*"

[ebuild     U ] app-arch/gzip-1.3.5-r9 [1.3.5-r8]

[ebuild   R   ] media-libs/imlib2-1.2.1.009  USE="-doc*"

[ebuild   R   ] sys-apps/busybox-1.1.3

[ebuild   R   ] media-sound/xmms-1.2.10-r15  USE="-3dnow* -directfb* -flac* -jack* -mikmod* -mmx*"

[ebuild   R   ] media-plugins/xmms-mpg123-1.2.10-r1  USE="-3dnow* -mmx*"

[ebuild  N    ] media-libs/aalib-1.4_rc4-r2  USE="gpm -X -slang -static"

[ebuild   R   ] media-gfx/imagemagick-6.2.9.5  USE="tiff*"

[ebuild   R   ] media-gfx/gimp-2.2.12  USE="aalib* png* smp* sse* svg* tiff*"

[ebuild     U ] sys-apps/kbd-1.12-r7 [1.12-r6]

[ebuild   R   ] gnome-base/nautilus-2.14.1  USE="X*"

[ebuild     U ] dev-libs/nspr-4.6.3 [4.6.1-r2]

[ebuild     U ] dev-libs/nss-3.11.3 [3.11-r1]

[ebuild  N    ] media-libs/libao-0.8.5  USE="alsa -arts -esd -mmap -nas"

[ebuild     UD] net-im/gaim-1.5.0 [2.0.0_beta3-r2]

[ebuild   R   ] media-gfx/xv-3.10a-r12  USE="tiff*"

[ebuild     U ] sys-apps/debianutils-2.15-r1 [2.15]

[ebuild     U ] sys-apps/findutils-4.3.0 [4.1.20-r2]

Would you like to merge these packages? [Yes/No]
```

Ho appena finito di preparare "bene" (almeno spero) il mio package.use:

```
# cat /etc/portage/package.use

app-editors/gvim bash-completion cscope gnome gtk

app-editors/vim bash-completion cscope vim-pager vim-with-x

app-text/ghostscript-gpl gtk

dev-perl/sdl-perl mpeg

dev-python/pycairo gtk

gnome-base/librsvg gnome

gnome-base/nautilus X gnome

gnome-extra/libgsf gnome

media-gfx/eog jpeg

media-gfx/gimp jpeg png svg smp sse tiff aalib

media-gfx/imagemagick X jpeg jpeg2k mpeg png tiff

media-gfx/xv jpeg png tiff

media-libs/freetype bindist

media-libs/imlib2 X bzip2 jpeg mmx mp3 png tiff gif

media-libs/jasper jpeg

media-libs/libao alsa

media-libs/libsdl X alsa opengl oss xv

media-libs/libwmf gtk

media-libs/sdl-mixer mp3 vorbis

media-libs/sdl-image gif jpeg png

media-libs/smpeg X gtk

media-sound/xmms alsa mad mp3 oss sndfile vorbis

net-im/gaim msn

net-p2p/amule gtk

x11-libs/cairo X png

x11-libs/gtk+ jpeg

x11-libs/libast imlib

x11-libs/wxGTK X gnome
```

Vedi che mi ricompila anche GCC?

Eppure non ho cambiato nessuna USE:

```
# equery u gcc

[ Searching for packages matching gcc... ]

[ 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 sys-devel/gcc-4.1.1 ]

 U I

 - - altivec   : Adds support for optimizations for G4 and G5/ppc970 processors

 - - bootstrap : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used during original system bootstrapping

 - - build     : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping.

 - - doc       : Adds extra documentation (API, Javadoc, etc)

 + + fortran   : Adds support for fortran (formally f77)

 - - gcj       : Enable building with gcj (The GNU Compiler for the Javatm Programming Language)

 - - gtk       : Adds support for x11-libs/gtk+ (The GIMP Toolkit)

 - - hardened  : activate default security enhancements for toolchain (gcc, glibc, binutils)

 - - ip28      : Enable building a compiler capable of building a kernel for SGI Indigo2 Impact R10000 (IP28)

 - - ip32r10k  : Enable building a compiler capable of building an experimental kernel for SGI O2 w/ R1x000 CPUs (IP32)

 - - mudflap   : Add support for mudflap, a pointer use checking library

 - - multilib  : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries

 - - multislot : Allow for SLOTs to include minor version (3.3.4 instead of just 3.3)

 - - n32       : Enable n32 ABI support on mips

 - - n64       : Enable n64 ABI support on mips

 + + nls       : Adds Native Language Support (using gettext - GNU locale utilities)

 - - nocxx     : Disable support for C++ (DON'T USE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)

 - - objc      : Build support for the Objective C code language

 - - objc++    : Build support for the Objective C++ language

 - - objc-gc   : Build support for the Objective C code language Garbage Collector

 - - vanilla   : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the s. of the meaning changes drastically
```

Perche' e' una dipendenza? Non so.

Ciao

PS: scusa Ic3M4n, ho cercato nell'handbook ma non ho trovato cosa significano quelle USE gialline che si trovano in alcuni pacchetti con l'asterisco tra parentesi.

Potresti spiegarmelo velocemente se non ti scoccia?

Grazie mille in anticipo

----------

## Onip

Con la nuova versione di portage i pacchetti vengono ricompilati anche se vengono aggiunte\tolte delle USE.

Prova a con

 *Quote:*   

> # emerge -Dunav world

 

Vedrai che ci saranno delle USE segnate in giallo...

Byez

----------

## socksz

Capisco.

Ho dato un occhiata al man di emerge.

Quindi con -N ricompila tutti i pacchetti del sistema con le nuove USE (anche se non ce ne sono di nuove).

Invece con -n ricompila solo quelli da upgradare e quelli nuovi.

Se ho capito bene.   :Wink: 

Scusate, ma a questo punto mi conviene lanciare -Dunav o -DuNav ? (sempre con --depclean e revdep-rebuild dopo il merging)

PS: Non ho ancora capito cosa significano quelli gialli con le percentuali (prima ho detto asteristichi ma mi son sbagliato).

Ad esempio:

```
[ebuild     U ] media-gfx/graphviz-2.8-r2 [2.8-r1] USE="perl%* python%* -X* -cairo -guile% -java% -lua% -ocaml% -php% -ruby% -static -tcltk (-minimal%)" 0 kB
```

Non ho trovato cosa significano.

Ciao

----------

## Onip

verde con *  --> USE modificata dalle precedente insallazione del pacchetto

giallo con % --> USE aggiunta (o rimossa) rispetto alla versione installata

----------

## socksz

Grazie Onip.

Mi potresti linkare il pezzo in cui lo dice nell'handbook di Gentoo?

E' da un ora che cerco ma non trovo nulla =\ (per curiosita', per capire dove si nascondeva!)

```
Calculating dependencies... done!

[ebuild   R   ] media-sound/xmms-1.2.10-r15  USE="alsa mad mp3 nls oss sndfile vorbis -3dnow* -arts -directfb* -esd -flac* -jack* -lirc -mikmod* -mmx*" 0 kB
```

Infatti ora sto usando XMMS che ha anche le flag USE "flag, 3dnow, mikmod" etc.

Ma appena lo riemergero' con le nuove USE non le avra' piu'. E fin qui ci sono.

```
[ebuild     U ] media-gfx/graphviz-2.8-r2 [2.8-r1] USE="perl%* python%* -X* -cairo -guile% -java% -lua% -ocaml% -php% -ruby% -static -tcltk (-minimal%)" 0 kB
```

Invece con graphviz, nella versione 2.8-r2 sono state aggiunte flag USE come "perl, python, guile, java" etc. che nella versione 2.8-r1 non c'erano.

Ok ho capito,    :Very Happy:  grazie!

--------

Riguardo a ccache?

Posso benissimo lanciare:

```
ccache emerge -Dunav world
```

senza problemi?

Voi mi consigliate un -Dunav o un -DuNav per ricompilare tutto?

E' la prima volta che emergo il mondo   :Wink: 

Ciao

----------

## Peach

 *socksz wrote:*   

> Riguardo a ccache?
> 
> Posso benissimo lanciare:
> 
> ```
> ...

 

beh i moderatori ti bastoneranno: un problema, un topic.

cmq direi 

```
# emerge -av ccache
```

ma penso tu l'abbia già fatto

in make.conf aggiungi tra le FEATURES ccache

io le ho impostate così:

```
FEATURES="ccache fixpackages sandbox usersandbox nostrip candy"
```

già dalla prima compilazione dovresti poter vedere le statistiche con ccache così:

```

# ccache -s

cache hit                          62524

cache miss                        205540

called for link                    21568

multiple source files                122

compile failed                      4922

preprocessor error                  2484

couldn't find the compiler             1

not a C/C++ file                   13667

autoconf compile/link              43229

unsupported compiler option         7621

no input file                      23718

files in cache                    133813

cache size                         927.3 Mbytes

max cache size                    1024.0 Mbytes
```

Ho sempre avuto dei problemi con ccache al primo avvio

e ho optato per questa soluzione (cercando nel forum forse trovi qualcos'altro)

```
# echo "CCACHE_DIR=\"/root/.ccache\" >> /etc/env.d/99local
```

ciao

----------

## Ic3M4n

ma il nostrip non ti rende i binari più grossi?

so che serve per il debug, però se non "debugghi" niente non ti serve e fa risparmiare spazio.

----------

## Peach

[ot]

 *Ic3M4n wrote:*   

> so che serve per il debug, però se non "debugghi" niente non ti serve e fa risparmiare spazio.

 

so che se devo debuggare lo posso fare senza problemi... a meno che qualcuno non mi convinca del contrario.

[/ot]

----------

## Kernel78

 *socksz wrote:*   

> Grazie Onip.
> 
> Mi potresti linkare il pezzo in cui lo dice nell'handbook di Gentoo?
> 
> E' da un ora che cerco ma non trovo nulla =\ (per curiosita', per capire dove si nascondeva!)
> ...

 

 *man emerge wrote:*   

>        --verbose (-v)
> 
>               Tell emerge to run in verbose mode.  Currently this flag  causes
> 
>               emerge to print out GNU info errors, if any, and to show the USE
> ...

 

Però fate attenzione, questa volta man mi ha quasi morso ... è troppo pericoloso, vi sconsiglio di controllarlo  :Wink: 

----------

## socksz

Questa volta devo darti ragione Kernel78, lo avevo anche controllato come ho postato ieri, ma non avevo notato quella parte.

@Peach:

Io non volevo sapere come si installa ccache, lo utilizzo gia' felicemente   :Wink: 

Avevo chiesto se posso lanciare:

```
# ccache emerge -Dunav world
```

per compilare ogni pacchetto con ccache.

 *Peach wrote:*   

> Ho sempre avuto dei problemi con ccache al primo avvio
> 
> e ho optato per questa soluzione (cercando nel forum forse trovi qualcos'altro)
> 
> Code:
> ...

 

ho messo quella stringa in /etc/env.d/99local (intendo CCACHE_DIR="/root/.ccache",

ho lanciato env-update, ho compilato un pacchetto con ccache ma ccache -s non da statistiche.

Come mai? Per la cronaca non esisteva il file 99local.

----------

## Peach

 *socksz wrote:*   

> @Peach:
> 
> Io non volevo sapere come si installa ccache, lo utilizzo gia' felicemente  
> 
> Avevo chiesto se posso lanciare:
> ...

 

non credo, almeno da quello che leggo dal man di ccache e dalla sua home, dovrebbe essere una sorta di bypass al compilatore, il tuo comando è come lanciare `gcc emerge -Dunav world`

 *socksz wrote:*   

>  *Peach wrote:*   Ho sempre avuto dei problemi con ccache al primo avvio
> 
> e ho optato per questa soluzione (cercando nel forum forse trovi qualcos'altro)
> 
> Code:
> ...

 

non vorrei andare troppo OT, cmq esiste /root/.ccache ?

personalmente in fase di compilazione rilevavo degli errori di accesso alla dir di ccache, tra la fine del .configure e l'inizio del make.

prova a controllare per bene

la comodità di usare ccache come feature di portage significa usare ccache in maniera autonoma ed indipendente da pacchetto e dal compilatore usato.

farlo andare è altro conto, come noti.

----------

## socksz

Io nel make.conf ho settato questa linea:

```
CCACHE_DIR="/var/tmp/ccache"
```

e quando provo a dare:

```
# ccache -s

cache hit                              0

cache miss                             0

called for link                        1

no input file                         73

files in cache                         0

cache size                             0 Kbytes

max cache size                       2.0 Gbytes
```

Invece se provo con:

```
# CCACHE_DIR="/var/tmp/ccache" ccache -s

cache hit                           9875

cache miss                         29005

called for link                     3295

multiple source files                 25

compile failed                      1246

preprocessor error                   499

not a C/C++ file                    1519

autoconf compile/link               7873

unsupported compiler option          116

no input file                       6432

files in cache                     58010

cache size                         386.9 Mbytes

max cache size                       2.0 Gbytes
```

sembra che funzioni.

Anche come tempo ccache funziona.

Comunque, come posso fare in modo che anche con un:

```
# emerge -Dunav world
```

mi compili tutti i pacchetti usando ccache?

Perche' di solito si utilizza:

```
# ccache emerge pacchetto
```

Quindi dovrebbe funzionare. O sbaglio?

Ciao

----------

## Peach

 *socksz wrote:*   

> Io nel make.conf ho settato questa linea:
> 
> ```
> CCACHE_DIR="/var/tmp/ccache"
> ```
> ...

 

beh ma allora metti la stessa in /etc/env.d/99local

chiaro che se la sballi si incazza e non capisce più niente

 *socksz wrote:*   

> Comunque, come posso fare in modo che anche con un:
> 
> ```
> # emerge -Dunav world
> ```
> ...

 

quindi aggiungi il pippetto in env.d e la FEATURE ccache in make.conf

dovrebbe bastare.

controlla bene l'output della compilazione.

----------

