# pulire le use flag in /etc/make.conf

## magowiz

Ciao a tutti,

ho come abitudine (sicuramente sbagliata) di mettere praticamente tutte le use flag nel file /etc/make.conf impostandole come globali anche quando magari sono relative solo a un pacchetto. Esiste qualche script/programma che mi permetta di capire quali use flag è meglio spostare in /etc/package.use ?

----------

## GabrieleB

Sono nella stessa esatta situazione. 

Resto sintonizzato su questo thread.

----------

## magowiz

 *GabrieleB wrote:*   

> Sono nella stessa esatta situazione. 
> 
> Resto sintonizzato su questo thread.

 

ho provato a usare euse, se lanciato con l'opzione -i e come argomento il nome della use flag ti dice se è globale o locale e ti spiega il suo scopo.

----------

## Scen

Non sono un bash scripter provetto, però penso che questo possa fare al caso vostro:

(N.B. necessita di quse, fornito da app-portage/portage-utils)

```

for x in `grep "^USE\=.*" /etc/make.conf | cut -d "\"" -f 2 | sed -e 's/-//g'`; do quse -qD $x; done | grep local | awk -F ':' {'print $2 " per " $3'}

```

Vi elencherè qualcosa del genere (esempio, relativo al mio sistema)

```

cairo per media-video/kmplayer

xvmc per media-libs/xine-lib

xvmc per media-tv/mythtv

xvmc per media-video/mplayer

```

ovvero le USE "locali", ovvero specifiche per alcuni pacchetti, che a rigor di logica andrebbero impostate in /etc/package.use.

Sicuramente, però, ci sono modi migliori per ottenere qualcosa del genere  :Cool: 

----------

## Kernel78

Io ho dovuto modificare leggermente il tuo script per farlo funzionare sulla mia macchina (USE è su più righe nel mio make.conf)

```
$ . /etc/make.conf; for i in $USE; do   quse -qD $(echo $i|cut -f 2 -d "-")|grep local| awk -F ':' {'print $2 " per " $3'}  ; done

logrotate per app-antivirus/clamav

logrotate per app-backup/bacula

logrotate per mail-filter/dspam

logrotate per mail-filter/spamassassin-fuzzyocr

logrotate per net-ftp/vsftpd

logrotate per net-mail/mailgraph

logrotate per net-proxy/squid

logrotate per sys-apps/qingy

logrotate per sys-cluster/vzctl

logrotate per sys-power/acpid

logrotate per sys-power/hibernate-script

logrotate per www-servers/ocsigen

nforce2 per sys-power/cpufreqd

nvidia per gnome-extra/sensors-applet

nvidia per sys-power/cpufreqd

pmu per sys-power/cpufreqd

swig per app-mobilephone/obexftp

swig per dev-libs/libprelude

swig per dev-libs/libpreludedb

swig per dev-ruby/sqlite3-ruby

v4l2 per dev-libs/DirectFB

v4l2 per dev-libs/pwlib

v4l2 per media-video/mpeg4ip

v4l2 per media-video/mplayer

v4l2 per media-video/transcode

pppd per net-dialup/capi4k-utils

reflection per dev-lang/php

```

Ovviamente io me ne frego e pur essendo locali mi tengo queste USE in make.conf visto che se dovessi installare un pacchetto che supporta logrotate (per fare un esempio) vorrei che abbia di sicuro tale USE abilitata.

D'altronde ho un sacco di USE globali definite per singoli pacchetti ...

```
# for i in $(cat /etc/portage/package.use/* | cut -f 2- -d " " | cut -f 2 -d "-" ); do   quse -qD $i | grep global | cut -f 2 -d : ; done | sort | uniq

doc

dvdread

examples

kdeenablefinal

musicbrainz

sqlite

sse2

usb

zlib

```

Quindi più che fare queste cose in automatico io consiglio sempre di farle con cognizione di causa, impostare una USE per tutto il sistema o per un singolo pacchetto in base a quello che si vuole ottenere.

----------

## djinnZ

visto che uso profuse (ma non mi pare che le alternative siano migliori) sono praticamente costretto a mettere tutto in make.conf e lasciare in package.profile solo le use da disabilitare per pacchetto tanto qualsiasi sia il metodo mi pare che diffrenze non ce ne sono nei tempi (sempre più elefantiaci) di emerge.

ma è un metodo come un altro.

quello da evitare è di fare un mix tra make.conf e package.use perchè poi non ti ci raccapezzi più davvero.

----------

## magowiz

 *Kernel78 wrote:*   

> Io ho dovuto modificare leggermente il tuo script per farlo funzionare sulla mia macchina (USE è su più righe nel mio make.conf)
> 
> ```
> $ . /etc/make.conf; for i in $USE; do   quse -qD $(echo $i|cut -f 2 -d "-")|grep local| awk -F ':' {'print $2 " per " $3'}  ; done
> 
> ...

 

in effetti con lo script di prima mi dava troppo pochi risultati   :Very Happy: Last edited by magowiz on Wed Aug 08, 2007 1:19 pm; edited 1 time in total

----------

## Scen

Immaginavo fosse migliorabile. Io assumevo che in make.conf ci fosse solo un'assegnazione di USE  :Rolling Eyes: .

----------

## magowiz

 *Scen wrote:*   

> Immaginavo fosse migliorabile. Io assumevo che in make.conf ci fosse solo un'assegnazione di USE .

 

non credo sia tanto una questione di più assegnazioni, c'è n'è solo una, ma il nostro amico Kernel78, come me d'altronde, ha messo qualche a capo per tenere più "ordinate" le sue use flag   :Wink: 

----------

## riverdragon

https://forums.gentoo.org/viewtopic-t-531175.html (prendete lo script di drizzt, non il mio  :Very Happy:  )

----------

