Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Forum italiano (Italian) Risorse italiane (documentazione e tools)
  • Search

[TIP] Identificare le USE inutili

Forum riservato alla documentazione in italiano.

Moderator: ago

Post Reply
  • Print view
Advanced search
21 posts • Page 1 of 1
Author
Message
riverdragon
Veteran
Veteran
User avatar
Posts: 1269
Joined: Thu Sep 14, 2006 9:16 am
Location: Verona

[TIP] Identificare le USE inutili

  • Quote

Post by riverdragon » Thu Jan 11, 2007 10:23 pm

Per chi, come me, ha un sacco di USE in make.conf può tornare utile questo piccolo script che ho appena provato:

Code: Select all

source /etc/make.conf
for i in $USE
do   if [ `equery hasuse $i 2>/dev/null | wc -l` -eq 0 ]
        then echo -e "\nLa use $i non e' usata\n"
        elif [ `equery hasuse $i 2>/dev/null | wc -l` -eq 1 ]
        then echo "Il pacchetto `equery hasuse $i | cut -f4` e' l'unico ad utilizzare la USE $i"
        fi
done
Non fa miracoli, ci mancherebbe, ma senza andare a verificare le use inutili manualmente ora sono in grado di rimuovere 5 use, e valuterò quali altre spostare in package.use.
E' poco efficiente in quanto chiama almeno due volte equery per ogni pacchetto, ma utilizzando variabili temporanee saltano i controlli, se avete miglioramenti, accomodatevi.
Last edited by riverdragon on Mon May 07, 2007 5:09 pm, edited 1 time in total.
Top
bandreabis
Advocate
Advocate
User avatar
Posts: 2497
Joined: Fri Feb 18, 2005 4:21 pm
Location: イタリアのロディで

  • Quote

Post by bandreabis » Thu Jan 11, 2007 10:40 pm

Io 9 USE inutili (sono su AMD64 ma erori rimasugli di tentativi a 32bit :P ):
$ ./uses

La use gstreamer non e' usata


La use dvd non e' usata


La use musepack non e' usata


La use dvdr non e' usata


La use svga non e' usata


La use yahoo non e' usata


La use win32codecs non e' usata


La use real non e' usata


La use offensive non e' usata
Bel TIP. :D

PS: io voglio usare "offensive"... :(

PPS: di certo non sono io la persona adatta a migliorare uno script, è già tanto che son riuscito ad avviarlo... :roll:
Il numero di post non fa di me un esperto! Anzi!
Top
skypjack
l33t
l33t
User avatar
Posts: 884
Joined: Sat Aug 05, 2006 10:56 am
Location: Italia - Firenze

  • Quote

Post by skypjack » Fri Jan 12, 2007 8:45 am

Carino, complimenti.
Unica commento: io non uso la USE globale bluetooth, ma è preventiva, se un giorno qualche pacchetto la vorrà, eccola lì ad aspettare.
Se la tolgo, saranno guai.
Inoltre, magari vado a togliere flag che non uso ma che comportano l'installazione di pacchetti e allora...
Insomma, complimenti ma come sempre: occhio a ciò che togliete!!

Ps: Scusa se te lo dico, ma mi da come non usata la USE javascript che invece è usata da links...
Pps: Stessa cosa per bluetooth, dga, symlink, xpm, foomaticdb, lm_sensors, ieee1394...

Insomma, tutte quelle che mi dava per inutili in realtà le uso. Forse ha bisogno di una revisione, questo script! :?
Spero che il mio bug-report ti sia d'aiuto...
Buon lavoro!
Top
crisandbea
Veteran
Veteran
Posts: 1778
Joined: Sun Jul 03, 2005 8:56 am
Location: BOSCO (SA) ... ma domiciliato a Bologna....
Contact:
Contact crisandbea
Website

  • Quote

Post by crisandbea » Fri Jan 12, 2007 9:14 am

forse usando euse al posto di equery, apportando qualche piccola modifica allo script sarebbe ottimo..

cmq bravo, idea utile.

ciauz
Top
Kernel78
Moderator
Moderator
Posts: 3654
Joined: Fri Jun 24, 2005 6:14 am
Contact:
Contact Kernel78
Website

  • Quote

Post by Kernel78 » Fri Jan 12, 2007 9:43 am

Dalla versione 0.7.9 eix riporta anche le USE con cui un pacchetto è installato, penso che con grep dovrebbe dare ottimi risultati :wink:
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con

Code: Select all

grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Top
drizztbsd
Retired Dev
Retired Dev
User avatar
Posts: 278
Joined: Sun Nov 21, 2004 10:58 pm
Location: Cesano Maderno
Contact:
Contact drizztbsd
Website

  • Quote

Post by drizztbsd » Fri Jan 12, 2007 9:54 am

Code: Select all

#!/bin/sh

USE=$(. /etc/make.conf ; echo $USE)
CR="
"

for i in $USE; do
    [ -z "${i%-*}" ] && continue
    pkg=$(egrep -lr "(^|[^a-z])$i(\$|[^a-z])" --include IUSE /var/db/pkg | sed -e 's:^/var/db/pkg/::' -e 's:/IUSE$::' )
    if [ -z "$pkg" ]; then
        echo "La use $i non e' usata"
    elif [ "${pkg}" = "${pkg%$CR*}" ]; then
        echo "Il pacchetto $pkg e' l'unico ad utilizzare la USE $i"
    fi
done
Una roba del genere dovrebbe essere MOLTO più veloce (e soprattutto non dipende da gentoolkit) 8)
p.s. entrambi non supportano package.use
Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor
Top
codadilupo
Advocate
Advocate
Posts: 3135
Joined: Tue Aug 05, 2003 8:48 am

  • Quote

Post by codadilupo » Fri Jan 12, 2007 11:43 am

non ho ben afferrato a cosa serve questo script.
Io posso avere anche delle use che non usa nessun pacchetto, ok, ma il vero problema, secondo me, è avere una use in /etc/make.conf che è anche specificata in packages.use... non sarebbe piu' utile scovare questo tipo di ridondanza ?

Coda
Top
crisandbea
Veteran
Veteran
Posts: 1778
Joined: Sun Jul 03, 2005 8:56 am
Location: BOSCO (SA) ... ma domiciliato a Bologna....
Contact:
Contact crisandbea
Website

  • Quote

Post by crisandbea » Fri Jan 12, 2007 11:54 am

codadilupo wrote:non ho ben afferrato a cosa serve questo script.
Io posso avere anche delle use che non usa nessun pacchetto, ok, ma il vero problema, secondo me, è avere una use in /etc/make.conf che è anche specificata in packages.use... non sarebbe piu' utile scovare questo tipo di ridondanza ?

Coda
io personalmente uso la seguente politica:

Code: Select all

euse -i flaguse
per verificare se è una flag locale o globlale, se è locale e non la usano più di 4-5 pacchetti la inserisco per ogni pacchetto in /etc/portage/package.use, se invece è globale la inserisco direttamente in /etc/make.conf;

ciauz
Top
Kernel78
Moderator
Moderator
Posts: 3654
Joined: Fri Jun 24, 2005 6:14 am
Contact:
Contact Kernel78
Website

  • Quote

Post by Kernel78 » Fri Jan 12, 2007 12:31 pm

crisandbea wrote:io personalmente uso la seguente politica:

Code: Select all

euse -i flaguse
per verificare se è una flag locale o globlale, se è locale e non la usano più di 4-5 pacchetti la inserisco per ogni pacchetto in /etc/portage/package.use, se invece è globale la inserisco direttamente in /etc/make.conf;

ciauz
è lo stesso discorso che ho avuto recentemente con chrome e anche a lui ho fatto notare che un approccio del genere è limitante ...
Io per esempio ho abilitato la USE globale hardened solo per il pacchetto syslog-ng nel package.use, se l'avessi specificata in make.conf avrei tutto un sistema hardened e non è quello che voglio.
Difficilmente saremo tutti concordi sulla definizione di USE inutili, alcuni ritengono inutili delle USE che non sono usate da nessun pacchetto installato mentre per altri è utile averle già pronte nell'eventualità di installare qualche pacchetto che le possa sfruttare (d'altronde gli stessi profili definiscono delle USE che al termine dell'installazione sono inutilizzate), altri ritengono inutile avere USE definite sia in make.conf che in package.use mentre per alcuni potrebbe essere comodo nel caso in cui si decida di rimuovere una USE da make.conf ma per qualche ragione serve per qualche specifico pacchetto e via dicendo ...

Il bello di Gentoo è la libertà di scelta e ognuno ha i suoi criteri soggettivi.
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con

Code: Select all

grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Top
skypjack
l33t
l33t
User avatar
Posts: 884
Joined: Sat Aug 05, 2006 10:56 am
Location: Italia - Firenze

  • Quote

Post by skypjack » Fri Jan 12, 2007 2:18 pm

Un plauso a kernel... Hai elegantemente riassunto il litigio dell'altro thread!! :D
Top
riverdragon
Veteran
Veteran
User avatar
Posts: 1269
Joined: Thu Sep 14, 2006 9:16 am
Location: Verona

  • Quote

Post by riverdragon » Fri Jan 12, 2007 2:23 pm

Non ho capito cosa faccia, ma lo script di Drizzt Do` Urden funziona molto meglio.
Non è che spiegheresti cosa fa?
Top
Kernel78
Moderator
Moderator
Posts: 3654
Joined: Fri Jun 24, 2005 6:14 am
Contact:
Contact Kernel78
Website

  • Quote

Post by Kernel78 » Fri Jan 12, 2007 2:39 pm

riverdragon wrote:Non ho capito cosa faccia, ma lo script di Drizzt Do` Urden funziona molto meglio.
Non è che spiegheresti cosa fa?
Se provi i comandi uno per uno te ne renderesti conto velocemente ...
Estrae le USE da make.conf, se le scorre e cerca tra i pacchetti installati quali hanno quella USE attiva ...
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con

Code: Select all

grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Top
drizztbsd
Retired Dev
Retired Dev
User avatar
Posts: 278
Joined: Sun Nov 21, 2004 10:58 pm
Location: Cesano Maderno
Contact:
Contact drizztbsd
Website

  • Quote

Post by drizztbsd » Fri Jan 12, 2007 2:44 pm

riverdragon wrote:Non ho capito cosa faccia, ma lo script di Drizzt Do` Urden funziona molto meglio.
Non è che spiegheresti cosa fa?
Eccome no :P

Code: Select all

#!/bin/sh

#Qui potrei usare source /etc/make.conf ma così è più portabile
USE=$(. /etc/make.conf ; echo $USE)

#Un normalissimo \n
CR="
"

for i in $USE; do
    #Se la use è di tipo negativo (esempio -gdb) ignorala
    [ -z "${i%-*}" ] && continue
    #Vado a cercare direttamente nel database dei pacchetti (/var/db/pkg) la use (per le opzioni man grep)
    #È molto più veloce di equery perché non usa python o altre porcate simili
    pkg=$(egrep -lr "(^|[^a-z])$i(\$|[^a-z])" --include IUSE /var/db/pkg | sed -e 's:^/var/db/pkg/::' -e 's:/IUSE$::' )
    if [ -z "$pkg" ]; then
        echo "La use $i non e' usata"
    #se pkg è uguale a package fino al primo \n vuol dire che cen'è solo uno
    #qui andrebbe anche bene il wc -l, solo che forkerebbe per ogni ciclo. così invece no
    elif [ "${pkg}" = "${pkg%$CR*}" ]; then
        echo "Il pacchetto $pkg e' l'unico ad utilizzare la USE $i"
    fi
done
Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor
Top
bandreabis
Advocate
Advocate
User avatar
Posts: 2497
Joined: Fri Feb 18, 2005 4:21 pm
Location: イタリアのロディで

  • Quote

Post by bandreabis » Sat Oct 16, 2021 10:03 pm

Quindi cambio /etc/make.conf con /etc/portage/make.conf e posso usare ancora questo script?
Il numero di post non fa di me un esperto! Anzi!
Top
fedeliallalinea
Administrator
Administrator
User avatar
Posts: 31977
Joined: Sat Mar 08, 2003 11:15 pm
Location: here
Contact:
Contact fedeliallalinea
Website

  • Quote

Post by fedeliallalinea » Sun Oct 17, 2021 8:13 am

bandreabis wrote:Quindi cambio /etc/make.conf con /etc/portage/make.conf e posso usare ancora questo script?
Mi sembra che dovrebbe funzionare con questa modifica ma non so quanto possa essere utile se fai uso principalmente di /etc/portage/package.use.
Infatti in make.conf io metto solo lo stretto necessario e per il resto uso /etc/portage/package.use che abilito use flag solo ai pacchetto voluti.
Potresti anche smettere di usare make.conf e utilizzare solo package.use usando la sintassi */* use1 use2 -use3.
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Top
Kernel78
Moderator
Moderator
Posts: 3654
Joined: Fri Jun 24, 2005 6:14 am
Contact:
Contact Kernel78
Website

  • Quote

Post by Kernel78 » Sun Oct 17, 2021 4:07 pm

Ricevere una notifica su un thread a cui ho partecipato 14 anni fa è strano ma interessante ... complimenti per aver fatto una ricerca prima di aver postato
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con

Code: Select all

grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Top
fedeliallalinea
Administrator
Administrator
User avatar
Posts: 31977
Joined: Sat Mar 08, 2003 11:15 pm
Location: here
Contact:
Contact fedeliallalinea
Website

  • Quote

Post by fedeliallalinea » Sun Oct 17, 2021 4:17 pm

Kernel78 wrote:Ricevere una notifica su un thread a cui ho partecipato 14 anni fa è strano ma interessante ... complimenti per aver fatto una ricerca prima di aver postato
Oh guarda un po' chi si vede :D .
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Top
Kernel78
Moderator
Moderator
Posts: 3654
Joined: Fri Jun 24, 2005 6:14 am
Contact:
Contact Kernel78
Website

  • Quote

Post by Kernel78 » Sun Oct 17, 2021 4:21 pm

fedeliallalinea wrote:
Kernel78 wrote:Ricevere una notifica su un thread a cui ho partecipato 14 anni fa è strano ma interessante ... complimenti per aver fatto una ricerca prima di aver postato
Oh guarda un po' chi si vede :D .
Ogni tanto penso di tornare su gentoo ma già fatico a trovare del tempo libero per altri progetti ... avere due figlie è più impegnativo che ricompilare il kernel :D

La cosa che mi stupisce di più è di essere ancora moderatore ...

Mi sono perso qualcosa in questi 14 anni? :D
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con

Code: Select all

grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Top
fedeliallalinea
Administrator
Administrator
User avatar
Posts: 31977
Joined: Sat Mar 08, 2003 11:15 pm
Location: here
Contact:
Contact fedeliallalinea
Website

  • Quote

Post by fedeliallalinea » Sun Oct 17, 2021 4:26 pm

Kernel78 wrote:Ogni tanto penso di tornare su gentoo ma già fatico a trovare del tempo libero per altri progetti ... avere due figlie è più impegnativo che ricompilare il kernel :D
Devo dire che se stai su un sistema stable il lavoro una volta installato non è poi così tanto.
Kernel78 wrote:La cosa che mi stupisce di più è di essere ancora moderatore ...
Un moderatore è per sempre (o erano i diamanti?) :P
Kernel78 wrote:Mi sono perso qualcosa in questi 14 anni? :D
A parte che gentoo non è più così popolare come un tempo... solite cose :D .
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Top
bandreabis
Advocate
Advocate
User avatar
Posts: 2497
Joined: Fri Feb 18, 2005 4:21 pm
Location: イタリアのロディで

  • Quote

Post by bandreabis » Sun Oct 17, 2021 5:47 pm

Kernel78 wrote:Ricevere una notifica su un thread a cui ho partecipato 14 anni fa è strano ma interessante ... complimenti per aver fatto una ricerca prima di aver postato
8)
È bello risentirvi!
Il numero di post non fa di me un esperto! Anzi!
Top
antonellocaroli
Guru
Guru
Posts: 514
Joined: Thu Aug 11, 2016 8:34 pm

  • Quote

Post by antonellocaroli » Mon Nov 22, 2021 6:48 pm

fedeliallalinea wrote: A parte che gentoo non è più così popolare come un tempo...
beh, questo é un peccato....meriterebbe piú popolarità.
Top
Post Reply
  • Print view

21 posts • Page 1 of 1

Return to “Risorse italiane (documentazione e tools)”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy