# [TOOL][GECHI] DepCleaner (will be PortageNurse ;) )

## FonderiaDigitale

UPDATE: Code Freeze. Questa versione non e' piu' manutenuta, vedere questo post per i dettagli.

-------------------------------------------------------------------------------------

Premessa: non voglio avere sulla coscienza nessuno, e ci tengo a ripeterlo... specie il suo portage tree,  per cui:

RICORDATEVI CHE QUESTO TOOL E' SPERIMENTALE!

FATEVI DELLE COPIE DI SICUREZZA DEI FILE IMPORTANTI PER IL SISTEMA!!

ATTENZIONE: Qpkg ha un bug documentato qui: tende a riportare dipendenze non corrette. per cui anche depclean puo' non essere efficace. pertanto usatelo solo a scopo indicativo: riguardate bene COSA andate a modificare.

Si dice che la notte porti consiglio; io invece vi porto questo programmino, creato nella scia di un altro thread.

E' un wrapper per emerge depclean, in piu controlla le dipendenze e il loro stato, le include eventualmente nel file world, e ripulisce i file temporanei di portage.

Versione 0.0.8a: Questa e' l'ultima release che utilizza bash, la considero una 'feature freeze': d'ora in poi, fino alla release in python, non aggiungero' nulla e fixero' solo bachi o inesattezze.

Inoltre dalla prossima versione questo programma verra' 'fuso' con ebuild-switch, per creare un'interfaccia unica per soddisfare il piu possibile i bisogni di pulizia (e le mancanze, purtroppo) di portage.

FEATURES:

 *Quote:*   

> - colori e display gentoo-style
> 
> - usando il parametro --ask richiede conferma per ogni singolo pacchetto
> 
> - ha una opzione --pretend che funziona esattamente come quella di emerge
> ...

 

>>> ebuild di depclean <<<

per usarlo (dovreste aver settato la directory di overlay):

```
source /etc/make.conf

cd $PORTDIR_OVERLAY

tar zxvf depclean-0.0.8.tar.gz

emerge depcleaner
```

Screenshot!

Qualche esempio di utilizzo:

(test fatti sul mio notebook)

```
Goliath scripts # ./depclean -h

depclean 0.0.8 by Giovanni Ferri <giovanni@fonderiadigitale.it>

Usage: depclean [options] <pattern>

                 --ask or -a: asks for each package to be unmerged (needed to add to the world file)

                              this is *REALLY* reccomended!

               --debug or -d: debug mode. Useful only for testing.

  [--pattern|-x] <something>: only include packages matching *something*

                              the '--pattern' switch can be omitted at all.

            --pretend  or -p: do not actually perform actions (to show what will be unmerged)

            --tmpclean or -t: remove temporary portage files
```

```
Goliath scripts # depclean -p lib

>>> --pretend was added, nothing will be really performed on-disk.

Creating list of possible dependencies, please wait.

Filtering selected pattern lib..

Checking for unused dependencies: this could take a HUGE amount of time.

Go visiting Gechi website www.gechi.it, have a coffee, or such ;)

..............................

Found 5 unused dependencies.

 

Unmerging package:   [1] =media-libs/libdvdplay-1.0.1

Unmerging package:   [2] =media-libs/libmpeg2-0.4.0b

Unmerging package:   [3] =media-libs/gle-3.0.1-r2

Unmerging package:   [4] =dev-libs/ewd-0.0.1.20040214

Unmerging package:   [5] =media-libs/libdvbpsi-0.1.4

```

```
Goliath scripts # depclean --pretend --ask nonhonientedisimilesulmiopc

>>> --pretend disables --ask... removing --ask from options. nothing will be performed on disk.

 

Creating list of possible dependencies, please wait.

Filtering selected pattern nonhonientedisimilesulmiopc..

Checking for unused dependencies: this could take a HUGE amount of time.

Go visiting Gechi website www.gechi.it, have a coffee, or such ;)

.

Found 0 unused dependencies.

 

Nothing left to unmerge. :)
```

```
Goliath scripts # ./depclean -t -a -p gnome

>>> --pretend disables --ask... removing --ask from options. nothing will be performed on disk.

Found stale files in portage temp dir /home/portage/tmp/portage/, fixing: ................... cleaned.

 

Creating list of possible dependencies, please wait.

Filtering selected pattern gnome..

Checking for unused dependencies: this could take a HUGE amount of time.

Go visiting Gechi website www.gechi.it, have a coffee, or such ;)

..

Found 8 unused dependencies.

 

Unmergeable package:   [1] =gnome-base/gnome-common-2.4.0

Unmergeable package:   [2] =gnome-extra/nautilus-cd-burner-2.6.0

Unmergeable package:   [3] =gnome-extra/gconf-editor-2.6.0

Unmergeable package:   [4] =gnome-extra/zenity-2.6.0

Unmergeable package:   [5] =dev-cpp/gnomemm-1.2.3-r1

Unmergeable package:   [6] =gnome-extra/gnome-media-2.6.0

Unmergeable package:   [7] =gnome-extra/gcalctool-4.3.51

Unmergeable package:   [8] =gnome-extra/gucharmap-1.4.1

```

```
Goliath scripts # ./depclean -a -x gnome

 

Creating list of possible dependencies, please wait.

Filtering selected pattern gnome..

Checking for unused dependencies: this could take a HUGE amount of time.

Go visiting Gechi website www.gechi.it, have a coffee, or such ;)

..

Found 8 unused dependencies.

 

Remove gnome-base/gnome-common-2.4.0 ? [yes/no/all/skiprest/world/abort]:

you must answer 'yes','no','all','skiprest','world','abort'.

Remove gnome-base/gnome-common-2.4.0 ? [yes/no/all/skiprest/world/abort]:

Aborted on user request.

 

Goliath scripts # ./depclean -a -x gnome

 

Creating list of possible dependencies, please wait.

Filtering selected pattern gnome..

Checking for unused dependencies: this could take a HUGE amount of time.

Go visiting Gechi website www.gechi.it, have a coffee, or such ;)

..

Found 8 unused dependencies.

 

Remove gnome-base/gnome-common-2.4.0 ? [yes/no/all/skiprest/world/abort]:

you must answer 'yes','no','all','skiprest','world','abort'.

Remove gnome-base/gnome-common-2.4.0 ? [yes/no/all/skiprest/world/abort]: y

Remove gnome-extra/nautilus-cd-burner-2.6.0 ? [yes/no/all/skiprest/world/abort]: w

Remove gnome-extra/gconf-editor-2.6.0 ? [yes/no/all/skiprest/world/abort]: w

Remove gnome-extra/zenity-2.6.0 ? [yes/no/all/skiprest/world/abort]: w

Remove dev-cpp/gnomemm-1.2.3-r1 ? [yes/no/all/skiprest/world/abort]: n

Remove gnome-extra/gnome-media-2.6.0 ? [yes/no/all/skiprest/world/abort]: n

Remove gnome-extra/gcalctool-4.3.51 ? [yes/no/all/skiprest/world/abort]: n

Remove gnome-extra/gucharmap-1.4.1 ? [yes/no/all/skiprest/world/abort]: y

Unmergeable package:   [1] =gnome-base/gnome-common-2.4.0

Unmergeable package:   [2] =gnome-extra/gucharmap-1.4.1

 

These packages will be added to the world file:

Would be added to world:   [1] gnome-extra/nautilus

Would be added to world:   [2] gnome-extra/gconf

Would be added to world:   [3] gnome-extra/zenity

WARNING: This feature is experimental. Have you backed up your file?

         If you have not backed it up, selecting auto will make a copy to /root/worldfile_15-05-2004.depclean, just in case something goes wrong.

 

Choose  [yes/no/auto]:

You must answer 'yes','auto','no'.

 

Choose  [yes/no/auto]: a

Backing up /var/cache/edb/world to /root/worldfile_15-05-2004.depclean... Done.

 

Adding selected packages to the world file...

Done.

Sorting world file... Done.

 

 

REALLY want to remove these dependencies?

LAST CHANCE TO QUIT!! (CTRL+C to exit) .. 5 4

Aborted on user request.

 

Goliath scripts # head -n 10 /var/cache/edb/world

app-admin/addpatches

app-admin/bacula

app-admin/gkrellm

app-admin/prelude-lml

app-admin/prelude-manager

app-admin/pydf

app-admin/quickswitch

app-admin/syslog-ng

app-admin/tripwire

app-admin/usbview

```

E' importante che riceva del feedback sul suo funzionamento, richieste di nuove features (ragionevolmente parlando), se lo usate, se vi e' servito in qualche modo, ecc..  :Smile: 

Grazie. buon uso (spero ne farete  :Smile: )

----------

## solka

Ciao.

complimenti per il programmino, l'ho provato, ma c'è una cosa che non mi è chiara. Lanciandolo, sembra che non ci siano pacchetti da rimuovere, invece se lancio il normale depclean di emerge, mi dà una lista di pacchetti possibili, alcuni sono dipendenze, e quindi non sono da rimuovere, ma altri invece non lo sono. Non dovrebbe rimuoverli?

Ad esempio, lanciando il tuo programma:

```

pitagora root # ./depclean --askme

Creating list of possible dependencies, please wait.

Sorting list....

Checking for unused dependencies: this could take a HUGE amount of time.

Go visiting Gechi website www.gechi.it, have a coffee, or such ;)

.

Found 0 unused dependencies.

Nothing left to unmerge. :)

```

Lanciando emerge depclean -p

```

>>> These are the packages that I would unmerge:

 app-text/dgs

    selected: 0.5.10-r1

   protected: none

     omitted: none

 app-dicts/aspell-en

    selected: 0.51.0

   protected: none

     omitted: none

 dev-libs/crypto++

    selected: 5.1-r1

   protected: none

     omitted: none

 media-sound/mad

    selected: 0.15.1b

   protected: none

     omitted: none

```

Controllo app-text/gds e noto che è una dipendenza, quindi non è da rimuovere

```

pitagora root # qpkg -I -q dgs

app-text/dgs-0.5.10-r1 *

DEPENDED ON BY:

        imagemagick-5.5.7.15

```

Invece provo con crypto++ e vedo che non è una dipendenza, quindi sarebbe da rimuovere

```

pitagora root # qpkg -I -q crypto++

dev-libs/crypto++-5.1-r1 *

DEPENDED ON BY:

```

Sto sbagliando io qualche cosa e quei pacchetti sono tutti necessari?

Poi secondo me sarebbe utile che il tuo programma aggiungesse i pacchetti che emerge depclean -p elenca come superflui, ma che in realtà non lo sono, in /var/cache/edb/world, magari domandandolo all'utente, in modo tale da non rischiare ogni volta di eliminarli con un mero depclean.

Ciao e grazie  :Smile: 

----------

## FonderiaDigitale

sembra che abbiamo una versione di qpkg che emette un output diverso.

cmq ho capito, adesso aggiungo un controllo in piu.

il motivo per cui hai un output diverso da depclean e' che lui controlla effettivamente se le dipendenze sono libere e se il pacchetto e' solo injettato o c'e' davvero.

spiegami cosa intendi con 'superflui' per emerge depclean: depclean elenca solo le dipendenze che crede siano 'spurie' anche se a volte non lo sono.

----------

## fedeliallalinea

Anche a me da qualche problema questo programma. Mi dice che non c'e' niente da togliere. Allora ho fatto partire depclean e ho controllato a mano. A questo punto provo il pacchetto gail

```
# qpkg -I -q gail

gnome-base/gail-1.4.1 *

DEPENDED ON BY:

        eel-2.4.2
```

eel anche lui fa parte dell'output di depclean allora controllo e

```
# qpkg -I -q eel 

gnome-base/eel-2.4.2 *

DEPENDED ON BY:
```

----------

## FonderiaDigitale

c'e' un piccolo problema di parsing, piu tardi lo fixo, per il momento non usatelo.

----------

## solka

 *FonderiaDigitale wrote:*   

> 
> 
> spiegami cosa intendi con 'superflui' per emerge depclean: depclean elenca solo le dipendenze che crede siano 'spurie' anche se a volte non lo sono.

 

Con 'superflui' intendo quei pacchetti che secondo depclean possono essere eliminati. A volte però mi è capitato che depclean cercasse di eliminare un pacchetto che in realtà mi serviva, e per evitare che lo facesse di nuovo avevo aggiunto il pacchetto nel file world, di conseguenza ti chiedevo se non fosse possibile fare una cosa del genere all'interno del programma stesso.

Esempio, depclean elenca come pacchetto da eliminare 'pippo'. Con qpkg risulta che 'pippo' non va eliminato, per evitare che ogni volta depclean cerchi di rimuovere lo stesso pacchetto, si aggiunge 'pippo' in /var/cache/edb/world. Magari domandando all'utente di aggiungere il pacchetto nel file world, in modo tale che possa anche decidere di tenere pacchetti che per il sistema sono superflui ma che per un qualche motivo l'utente non vuole eliminare.

Spero di essere stato chiaro e che non sia un procedimento del tutto inutile  :Wink: 

----------

## Mr.Evolution

Ottima idea questo tool....l'ho appena scaricato e ti farò avere il mio feedback al più presto.

Un'idea: non è che si potrebbe aggiungere una funzione per pulire la /var/tmp/ dalle informazioni di caching di portage?

----------

## FonderiaDigitale

si. aggiungo anche questo.

ripeto: fino alla prossima release non lo usate. e' da fixare (seppure sia una banalita')

----------

## FonderiaDigitale

giusto per tenervi informati, lo sto praticamente riscrivendo per meta', non ero molto soddisfatto.

ho aggiunto la funzione che chiedeva yoshi, per aggiungere il pacchetto al worldfile.

se volete vedere come sta venendo, qui ci sono gli screenshots.

----------

## solka

Ottimo, non vedo l'ora di provarlo  :Smile: 

----------

## neon

Emh tempo fa avevamo pensato di risolvere lo stesso problema in maniera inversa... ovvero aggiungendo i pacchetti che non dovevano essere toccati nel world file

Script 1

Script 2

Magari sono di aiuto e cmq quel thread è caduto nel dimenticatioio, se voleste risvegliarlo...

----------

## FonderiaDigitale

ti ringrazio, comunque la funzione relativa al world file e' gia' funzionante.. sto aspettando a rilasciare la nuova versione perche lo sto unendo all'altro script che ho postato ultimamente  :Smile: 

----------

## codadilupo

Ottimo ! Come avevamo sperato io e peach (e tutti gl'altri, mi sa  :Wink: ), il vecchio trhead sta riprendendo vita, e, non paghi, se n'e' aperto pure un'altro... ottimo, soprattutto, se riusciamo a mettere insieme tutte le esperienze, e tirar fuori quello che ancora resta, evidentemente, il problema piu' sentito da tutti... un bel un-merge come si deve  :Wink: 

Coda

----------

## federico

Avevo scritto tempo fa un software simile (il problema e' sentito) ma si era poi rivelato non cosi' preciso e avevo abbandonato l'idea.

Sono ansioso di provare questa tua proposta!

Federico

----------

## =DvD=

*mumble mumble*

[umilmente]

Aggiungere pacchetti al world file non mi ispira molto...

Se io emergo il pacchetto [A] che per dipendenze ha [A.1] e [A.2] e per caso emerge depclean volesse rimuovermi [A.2], aggiungerlo al world per fixare la cosa non mi sembra molto producente... Quando andrò a unmergere [A] e poi a fare un deplean (o depcleaner!) [A.1] sarà rimosso, ma [A.2] no, perchè ormai è nel world, ma non mi serve mica!!

[/umilmente]

Probabilmente ho capito male, vero?? =D

// edit: ho aggiunto un verbo che mancava!  :Wink: 

----------

## FonderiaDigitale

fermo.

il mio software gia implementa una feature che ti chiede espressamente se TU vuoi mettere nel world file ogni SINGOLO pacchetto. 

niente che tocchi il file world e' automatizzato (e mi pare giusto).

guarda qui e capisci: SHOT 1 SHOT 2

siccome risente ancora di qualche problema di giovinezza, ed essendo il suo scopo quello di maneggiare files piuttosto importanti per il sistema, non mi sento ancora di rilasciarlo, finche non ho testato e implementato tutte le funzioni che voglio.

Vorrei creare un tool che sia unificato per tutte le funzioni di pulizia, mantenimento degli ebuild, e 'sanitizzazione' di portage.

Vi tengo cmq informati delle novita'  :Smile:  portate pazienza.

----------

## federico

Come le Norton OOOps Gechi Utilities ?   :Cool: 

----------

## Benve

 *FonderiaDigitale wrote:*   

> 
> 
> siccome risente ancora di qualche problema di giovinezza, ed essendo il suo scopo quello di maneggiare files piuttosto importanti per il sistema, non mi sento ancora di rilasciarlo, finche non ho testato e implementato tutte le funzioni che voglio.
> 
> 

 

Ma e` proprio per questo che devi rilasciarlo  :Very Happy: 

Mica Linux e` stato rilasciato dalla versione 1.0  :Very Happy: 

----------

## OKreZ

 *Benve wrote:*   

> Ma e` proprio per questo che devi rilasciarlo 
> 
> Mica Linux e` stato rilasciato dalla versione 1.0 

 

Concordo, rilascialo cosi' tutti lo possono testare ed eventualmente darti una mano... sbaglio o e' cosi' che piu' o meno funziona il concetto di "open source" ?  :Very Happy: 

----------

## FonderiaDigitale

sempre il solito simpaticone lui   :Rolling Eyes:   :Rolling Eyes: 

il mio era un buon intento, volevo preservarvi da possibili danni autoprovocati   :Twisted Evil: 

Cmq ok, mi avete persuaso.

Vedete il primo post del thread (aggiornato)  :Smile: 

----------

## Thrain

Nonostante il primo impatto sia stato piacevolissimo...

BUG!

Piccolo ma evidente:

volevo inserire "media-fonts/gnu-gs-fonts-std" nel file world, ma depclean mi 

ha avvisato che stava per inserire "media-fonts/gnu" ... poi non l'ha fatto e 

non so perchè!

Penso sia un piccolo problema di parser (magari si ferma al primo "-"  :Question:  )

A parte questo, il tool è eccezionale! Bellissimo!

----------

## FonderiaDigitale

ok, ho capito cosa e', risolvo subito.

EDIT: vedi un po' se il problema ti si presenta anche con la nuova versione.

----------

## Thrain

 *Quote:*   

> 
> 
> EDIT: vedi un po' se il problema ti si presenta anche con la nuova versione.
> 
> 

 

Mh... non riesco a scaricare il file  :Sad:  !

----------

## FonderiaDigitale

Ops!   :Embarassed: 

riprova ora

----------

## Thrain

mh... è normale che depcleaner-0.0.8a.ebuild contenga:

 *Quote:*   

>  ▒¦@í[oÛ6ÇýZ}3¡m0ë~q
> 
> x@▒­±\
> 
> âÏ¾£8 'Åb§IÑ.X¿©ÃsÄó?¤Bè
> ...

 

 :Confused:  ... penso di no  :Very Happy: 

----------

## doom.it

 *FonderiaDigitale wrote:*   

> 
> 
> Inoltre dalla prossima versione questo programma verra' 'fuso' con ebuild-switch, per creare un'interfaccia unica per soddisfare il piu possibile i bisogni di pulizia (e le mancanze, purtroppo) di portage.
> 
> 

 

Adesso lo provo, volevo solo invitarti a tenere i due programmi come due script separati, infatti questo permetterà maggiore ortogonalità dei programmi, che svolgono funzioni diverse, e quindi mi piacerebbe vedere come separati, insoma KISS  :Smile: 

per adesso grazie ti farò sapere come mi funziona  :Wink: 

----------

## mrfree

Thrain...

effettivamente l'ebuild a cui ti riferisci è in realtà compressa   :Wink: 

io ho risolto con un banale

```
rm depcleaner-0.0.8a.ebuild

cp depcleaner-0.0.8.ebuild depcleaner-0.0.8a.ebuild

ebuild depcleaner-0.0.8a.ebuild digest
```

Caro fonderia rimaniamo in attesa di un bel fix   :Smile: 

----------

## solka

 *doom.it wrote:*   

> 
> 
> Adesso lo provo, volevo solo invitarti a tenere i due programmi come due script separati, infatti questo permetterà maggiore ortogonalità dei programmi, che svolgono funzioni diverse, e quindi mi piacerebbe vedere come separati, insoma KISS 
> 
> 

 

Concordo appieno  :Smile: 

----------

## Thrain

 *Quote:*   

> 
> 
> effettivamente l'ebuild a cui ti riferisci è in realtà compressa  
> 
> 

 

 :Embarassed:  Bon...

Lo immaginavo, ma non avevo provato  :Rolling Eyes: 

----------

## FonderiaDigitale

infatti era compresso  :Smile: 

comunque per il momento sono costretto - mio malgrado - a smettere di lavorarci sopra (ho rotto l'hd, devo reinstallare gentoo  :Sad: ).

appena riesco a rimetterci le mani sopra vi faccio sapere. intanto pero testatelo  :Smile: 

----------

## FonderiaDigitale

qpkg ha un bug, che non dipende dal sottoscritto. questo influisce direttamente   sul funzionamento di questo programma, per cui usatelo SOLO a titolo indicativo, finche i dev non lo fixano.

per i dettagli vedere il primo post.

----------

## Peach

 *FonderiaDigitale wrote:*   

> ATTENZIONE: Qpkg ha un bug documentato qui: tende a riportare dipendenze non corrette. per cui anche depclean puo' non essere efficace. pertanto usatelo solo a scopo indicativo: riguardate bene COSA andate a modificare.
> 
> 

 

hai detto niente...  :Confused: 

----------

## FonderiaDigitale

se usi --pretend, gia' ti puoi fare una idea di cosa sia inutile nel tuo sistema e cosa no.

d'altra  parte l'ho scritto bello grosso nel primo post: il programma e' lungi dall'essere completo, bugfree, e sopratutto, sicuro: se nessuno lo testa, dice le sue impressioni, propone idee/migliorie, ecc,, di certo mai lo sara'  :Smile: 

----------

## Thrain

Mh, hai ragione FonderiaDigitale  :Confused: 

Comunque, io avrei una "piccola" miglioria da proporti (anche se in realtà 

si tratta di modificare drasticamente lo script).

C'è un modo semplice e pulito per sapere quali siano le reali dipendenze di

un sistema, e quali siano i pacchetti da eliminare. Come nella maggior 

parte dei casi, però, ciò che è semplice e pulito per un essere umano, è 

difficile e sporco per una macchina  :Rolling Eyes:  ...

Arrivo al dunque...:

1- Verificare che nel file world ci siano solo i pacchetti che VOI avete 

voluto installare (per esempio, non penso che voi abbiate voluto installare 

le glib, al massimo saranno state installate come dipendenza...)

2- Verificate che i pacchetti ~arch che avete installato siano presenti nel 

vostro /etc/portage/package.keywords (sempre ricordandovi che VOI non 

avete installato, in linea di massima, glib ~arch... è stata installata come 

dipendenza, o no? Un'eccezione a questa regola si ha se un pacchetto 

~arch ha una/varie dipendenza/e ~arch: in quel caso dovete inserire in 

package.keywords anche la/le dipendenza/e)

3- A questo punto date un bel "emerge -ep world > pacchetti_necessari". 

Rimuovete tutto eccetto i nomi categoria/pacchetto-versione . Ordinate il 

file con un "sort pacchetti_necessari > p_n_sorted" . In questa lista sono 

presenti i pacchetti di cui il vostro sistema ha REALMENTE bisogno.

4- Date un "qpkg -v -I -nc > pacchetti_installati". Ordinate il file con "sort 

pacchetti_installati > p_i_sorted" . In questa lista sono presenti i pacchetti 

INSTALLATI nel sistema, sia quelli che servono, sia quelli inutili.

5- CONCLUSIONE: date un "diff -w p_i_sorted p_n_sorted" : l'output è una 

lista di pacchetti che avete installato ma che non servono al sistema!

NB: Se l'ultimo comando vi ha mostrato pacchetti che invece vi servono 

(per esempio pacchetti presenti nel vostro world) evidentemente avete 

sbagliato uno dei passaggi. Oppure le vostre USE flag non sono omogenee 

(un pacchetto usa delle flag non presenti nel vostro make.conf).

... spero di essere stato chiaro... sono accetti commenti, chiarimenti, 

critiche  :Wink: 

Ciao

----------

## FonderiaDigitale

l'idea che proponi e' interessante, ma infattibile all'atto pratico.

ti spiego perche':

a. chi usa ~x86 (e sono molti) non mette in package.keywords i pacchetti instabili,,, ma il contrario. io ad esempio uso solo certe versioni stabili di un pacchetto per evitare casini.

b. l'uso di emerge -e e' non-indicativo e inaffidabile per colpa dello stesso baco che affligge qpkg... in effetti la funzione/routine che li governa e' la stessa.

c. Cosa non da sottovalutare, usando emerge -e e' molto probabile che non ottieni neanche una lista valida, a causa dei blockers (ad esempio, se hai installato xorg-x11 e nvidia-glx, sicuramente avrai un blocco xche nvidia-glx ancora pretende come dipendenza xfree).

d. per quanto riguarda il world, il concetto e' l'esatto contrario: lo script non fa nessun controllo di consistenza sul file world. ci aggiunge i pacchetti che TU vuoi inserire dalla lista delle dipendenze sciolte, per evitare che te le richieda; ne consegue che lo script non fa nessuna verifica (allo stato attuale) sul world file.

inoltre, adottando l'approccio che dici tu, lo script sarebbe piu lento.

Ti ringrazio comunque per il tempo che hai dedicato a questo  :Smile: 

le critiche costruttive sono sempre ben accette..

----------

## Thrain

ok  :Rolling Eyes: 

Almeno ci ho provato  :Cool:  ! Comunque, se le cose stanno in questi termini, 

mi pare proprio che portage abbia SERI problemi  :Confused:  ... acci acci sento 

odore di incasinamenti...

Soprattutto per la questione dei blockers la vedo grigia... ma anche il fatto 

che emerge -e non funzioni a dovere mi preoccupa... non dovrebbe 

semplicemente verificare le dipendenze parsando gli ebuild?

Comunque per la questione di quelli che usano ~x86, non penso che in 

quel caso ci sia bisogno di aggiungere i pacchetti in package.keywords... 

quello step serviva solo per chi ha ACCEPT_KEYWORDS='arch' ...

PS: Magari è vero che stan lavorando a portage-NG? ... boh  :Rolling Eyes: 

Ciao

----------

## FonderiaDigitale

serve eccome, se alcuni pacchetti instabili non compilano non resta altro che usare la versione stable.

----------

## Thrain

Mh, allora...

... mi sembra molto strano che "qpkg -q -I" e "emerge -e world" seguano la 

stessa procedura... se fosse così, allora perchè "qpkg -q -I" mi dà delle 

dipendenze che "emerge -e world" non richiede? Evidentemente qualcosa di 

diverso c'è!

Poi, ho provato per ben due volte, a mano, il procedimento che ti avevo 

consigliato: be', mi sono cancellato all'incirca 20 pacchetti, e ancora non c'è 

nessuna dipendenza rotta. revdep-rebuild non è mai stato così magnanimo  :Very Happy:  !

Per cui, secondo me "emerge -e world" è un comando sicuro. Per il fatto dei 

blockers... be'... basta provvedere a mano.

My 2c  :Very Happy: 

PS: ovviamente, sono accette critiche  :Wink: 

----------

## koma

```

!!! ERROR: app-portage/depcleaner-0.0.8a failed.

!!! Function , Line 1291, Exitcode 127

!!! error sourcing ebuild

aux_get(): (0) Error in app-portage/depcleaner-0.0.8a ebuild. (1)

               Check for syntax error or corruption in the ebuild. (--debug)

/usr/sbin/ebuild.sh: line 1: : command not found

!!! ERROR: app-portage/depcleaner-0.0.8a failed.

!!! Function , Line 1291, Exitcode 127

!!! error sourcing ebuild

aux_get(): (0) Error in app-portage/depcleaner-0.0.8a ebuild. (1)

```

----------

## Thrain

Koma: "cat depcleaner-0.0.8a.ebuild" e scopri l'arcano  :Wink: 

... è un file compresso... semplicemente fai "mv depcleaner-0.0.8.ebuild depcleaner-0.0.8a.ebuild" e dovrebbe andare!

Ciao

----------

## FonderiaDigitale

Thrain: se provvedi a mano, un tool come questo ti serve a poco  :Smile: 

cmq si, il file e' compresso. il server e' momentaneamente down per spostamento macchina presso un'altra location

----------

## federico

Sempre a smanettare con queste tue macchine ...  :Wink: 

----------

## FonderiaDigitale

magari.... mi hanno spostato di edificio il server!   :Rolling Eyes: 

----------

## FonderiaDigitale

modificando il programma, ho aggiunto e tolto un bel po di cose (in primis non avra' piu bisogno del discusso qpkg), e sono passato a python.

dalla prossima versione credo che lo rinominero' in qualcosa di diverso, dato che non si occupa piu solo delle dipendenze, ma tiene traccia dei distfiles, dei file temporanei di portage, controlla gli ebuild fuori posto, controllera' che avete scritto bene la sintassi delle variabili in make.conf, e implementera' una funzione che praticamente corrisponde a /etc/portage/package.cflags.

pensavo a qualcosa come PortMantain.. molto di getto.

----------

## fedeliallalinea

Non per rompere ma PortMantain non mi convince

----------

## xchris

Effettivamente il nome non rende molto.

Ottime invece le scelte:python,niente qpkg,package.cflags.

Sono anche contento perche' depclean-ng integrera' la stessa idea che avevo per quel famoso howto di pulizia che avevo promesso.

Solo che sara' automatizzata! ottimo  :Wink: 

Vorrei seuggerirti solo una cosa.

Quando dopo emerge depclean + mass scan (ci siamo capiti vero?) rilevi i pkt "buttabili" evidenzierei sulle piattaforme stable se sono pkt hardmasked o instabili.

O magari potresti dare l'opzione per inserirli nei file appositi.

buon lavoro!

ciao

----------

## .:deadhead:.

 *xchris wrote:*   

> depclean-ng

 Non è male come nome nome  :Smile:  forse non azzecca proprio tutte le funzionalità di ciò che sta programmando Fonderia, ma sarebbe da tenere in considerazione...

----------

## FonderiaDigitale

nzomm.. il fatto e' che non pulisce piu soltanto, ma in generale andrebbe visto piu come un programma che si prende cura della integrita' di portage.

----------

## fedeliallalinea

portagenurse  :Very Happy: 

----------

## FonderiaDigitale

questo si che mi piace..   :Cool: 

----------

## .:deadhead:.

 *fedeliallalinea wrote:*   

> portagenurse 

 NO  :Shocked:   :Shocked:  ti giuro che è il nome che mi era venuto in mente anche a me, appena prima di leggere il tuo post!! 

[OT]

Io ho trovato la colonna sonora per questo tool: "The nurse who loved me" A perfect Circle, è una canzone che mi è capitato di ascoltare tempo fa e non riesco a togliermela dalla testa  :Cool: 

[/OT]

----------

