# [Risolto] depclean

## jordan83

Ciao,

quando provo a dare

```

#emerge --depclean -p

```

mi viene proposto di rimuovere ben 148 pacchetti, tra cui praticamente tutto kde.

Come è possibile?

Cosa posso fare affinchè il comando funzioni correttamente?

Sospetto che il problema sia legato al fatto che ho rimosso i metapacchetti relativi a kde (kde-meta e parenti) e conseguentemente i pacchetti che si sono installati tramite i metapacchetti (scusate il gioco di parole) ora risultano non dipendere da nessuno... Può essere?

Se questa fosse la causa, come posso risolvere questo problema fastidioso?

Devo aggiungerli al file world?

'zie   :Very Happy: 

----------

## .:chrome:.

evidentemente hai installato i pacchetti in modo strano/errato

prova a usare regenworld (prima però fatti una copia di /var/lib/portage/world)

----------

## neryo

sicuramente ti conviene ripristinare il metapacchetto relativo...

in ogni caso hai notato questo warning? 

 *Quote:*   

> 
> 
> *** WARNING ***  --depclean is known to be broken. It is highly recommended
> 
> *** WARNING ***  that `emerge --update --newuse --deep world` be ran before
> ...

 

----------

## .:chrome:.

personalmente non ho mai visto fallire depclean

l'ho sempre usato su tutte le mie macchine, anche quelle in produzione, e da tutti quelli che conosco, e non ha mai ciccato una volta.

trovo più probabile che quel warning sia un'eredità delle prime versioni quando effettivamente c'era da pregare che andasse tutto bene. ultimamente è stato ampiamente risistemato

----------

## jordan83

 *k.gothmog wrote:*   

> evidentemente hai installato i pacchetti in modo strano/errato
> 
> prova a usare regenworld (prima però fatti una copia di /var/lib/portage/world)

 

Ho già provato.

Da bravo furbone non avevo fatto la copia di backup, tuttavia fortunatamente (o forse no?  :Wink:  ) la situazione non è cambiata.

Non mi pare di aver installato in modo strano e/o errato.

Ho installato i pacchetti "kdeutils-meta kdesdk-meta kdenetwork-meta kdemultimedia-meta

kdegraphics-meta kdebase-meta kdeadmin-meta" per avere solo quello che mi interessava veramente (e non buttare tempo a compilare cose che poi avrei rimosso...)

Fatto questo ho rimosso i metapacchetti sennò ogni volta mi reinstallava pacchetti come kfloppy o atlantik che non mi interessano ed ho rimosso.

 *neryo wrote:*   

>  in ogni caso hai notato questo warning? 

 

Ho visto e ne sono conscio. Tuttavia avevo già usato depclean, senza problemi. Uso Gentoo da 1 mese, ma linux da ormai 5 anni. Di dipendenze tra pacchetti ormai ne ho viste tante da non sottovalutare mai un warning come quello. Ricordo ancora i dolori atroci con gli rpm... Brrrr...   :Shocked: 

Ho reinstallato i metapacchetti e in effetti il problema è sparito, o quasi. Ora mi vuole rimuovere "solo" 17 pacchetti:

 *Quote:*   

> 
> 
> Calculating dependencies ... done!
> 
> >>> These are the packages that I would unmerge:
> ...

 

Tutte cose di cui ignoro utilità e che non ho mai installato personalmente. Dite che posso rimuovere?

Come posso rimuovere allora i metapacchetti senza che ciò mi renda inutilizzabile "--depclean"? Aggiungo le dipendenze dei metapacchetti al file world?

Non voglio ad ogni aggiornamento dover reinstallare atlantik, kfloppy,juk e parenti.  :Confused: 

Grazie ancora!!

----------

## .:chrome:.

non è che hai usato emerge -u anche per installre i pacchetti?

----------

## neryo

 *k.gothmog wrote:*   

> personalmente non ho mai visto fallire depclean
> 
> l'ho sempre usato su tutte le mie macchine, anche quelle in produzione, e da tutti quelli che conosco, e non ha mai ciccato una volta.
> 
> trovo più probabile che quel warning sia un'eredità delle prime versioni quando effettivamente c'era da pregare che andasse tutto bene. ultimamente è stato ampiamente risistemato

 

si sono daccordo con te.. pero' bisogna tenere presente che non tutti hanno un sistema ben mantenuto e in quel caso i problemi potrebbero esserci!   :Wink: 

----------

## jordan83

 *k.gothmog wrote:*   

> non è che hai usato emerge -u anche per installre i pacchetti?

 

A meno che non lo abbia fatto inconsciamente, lo escludo al 99%.

Davvero, non credo di aver fatto nulla di strano.

----------

## .:chrome:.

allora sarà semplicemente successo che tu non hai installato direttamente KDE, ma un pacchetto che lo richiedeva.

avendo poi rimosso quel pacchetto, KDE viene visto ora come dipendenza "broken" e quindi il sistema ti propone di eliminarlo.

potresti provare a reinstallare il metapacchetto kde-base/kde che è piccolino e si installa in un attimo. così facendo dovresti risolvere

----------

## jordan83

 *k.gothmog wrote:*   

> allora sarà semplicemente successo che tu non hai installato direttamente KDE, ma un pacchetto che lo richiedeva.
> 
> avendo poi rimosso quel pacchetto, KDE viene visto ora come dipendenza "broken" e quindi il sistema ti propone di eliminarlo.
> 
> potresti provare a reinstallare il metapacchetto kde-base/kde che è piccolino e si installa in un attimo. così facendo dovresti risolvere

 

Un momento, mi sfugge qualcosa.

Ho provato a installare "kde" e ora mi propone di rimuovere 13 pacchetti invece che 17. Tuttavia si lamenta di una tonnellata di pacchetti in conflitto:

 *Quote:*   

> 
> 
> !!! There appears to be a problem with the following package:
> 
> !!! =kde-base/kdebase-3.4*
> ...

 

Questo è solo un estratto.

Io avevo capito che si poteva installare kde in modo monolitico, col pacchetto "kde", o in modo più capillare, coi vari metapacchetti "kde*-meta".

Io ho seguito la seconda strada.

Nel mio penultimo messaggio comunque avevo scritto che dopo aver reinstallato i metapacchetti che avevo rimosso, da 148 pacchetti che mi voleva disinstallare sono passato a 17 (accettabile) e sono tutti pacchetti che hanno l'aria di essere dipendenze o roba simile.

La mia necessità è quella di rimuovere i metapacchetti senza che la loro mancanza mi inibisca l'uso di --depclean. È possibile?

Spero di essere stato più chiaro. 

Denghiu

----------

## MeMyselfAndI

Ma scusa hai detto che hai installato kde tramite metapacchetti e che poi li hai tolti.... per forza che vuole disinstallarti kde... non c'e' piu' niente che richieda la sua esistenza nel tuo sistema.Quindi o riemergi tutti i metapacchetti, con tutte le dipendenze oppure emergi pacchetto per pacchetto solo quelli che ti servono!

P.s. mi sa che dovrai far fare un po di compilazione al tuo processore...

----------

## jordan83

 *MeMyselfAndI wrote:*   

> Ma scusa hai detto che hai installato kde tramite metapacchetti e che poi li hai tolti.... per forza che vuole disinstallarti kde... non c'e' piu' niente che richieda la sua esistenza nel tuo sistema.Quindi o riemergi tutti i metapacchetti, con tutte le dipendenze oppure emergi pacchetto per pacchetto solo quelli che ti servono!

 

Certo, questo l'ho capito.

Il fatto è che usare i metapacchetti è decisamente più comodo che cercare pacchetto per pacchetto cosa mi serve installare.

L'idea da cui son partito è installare famiglie di software di kde (come kdeutils-meta) e poi togliere quello che non mi interessa (ad esempio kfloppy, visto che non ho il floppy).

Dopo aver fatto tutto ciò, mi son reso conto che ad ogni aggiornamento del sistema, portage mi riemergeva anche quei pacchetti che avevo rimosso perchè per me inutili, ad esempio kfloppy. Da ciò ho dedotto che per evitare l'inconveniente dovevo rimuovere anche i metapacchetti.

Adesso mi chiedo, cosa devo fare affinchè i pacchetti che si sono installati grazie ai metapacchetti non vengano eliminati da "--depclean" come fossero delle dipendenze SENZA però reinstallare i metapacchetti?

Basta aggiungere i nomi di suddetti pacchetti al file "world"?

Nel caso sia questa la via corretta, c'è un modo veloce per farlo?

----------

## jordan83

Ho risolto!

Ho reinstallato i metapacchetti e ho creato il file /etc/portage/profile/package.provided, in cui ho inserito i nomi dei pacchetti che non voglio vengano installati.

Grazie a tutti per il supporto!   :Very Happy: 

----------

## .:chrome:.

 *jordan83 wrote:*   

> /etc/portage/profile/package.provided

 

non credo sia il metodo migliore.

perché non reinstalli?

potresti anche creare i pacchetti (quickpkg) e poi reinstallare da pacchetto (emerge -k) qualcosa che stia in cima all'albero delle dipendenze.

ci metti pochi minuti, usando i pacchetti

----------

## jordan83

 *k.gothmog wrote:*   

> 
> 
> non credo sia il metodo migliore.
> 
> perché non reinstalli?
> ...

 

Perchè dovrei reinstallare?  :Shocked: 

Ma non ho il db di Portage corrotto o problemi di malfunzionamento inspiegabili e irrisolvibili.

Il problema era che:

1) Ho installato Kde usando i seguenti metapacchetti:

 *Quote:*   

> 
> 
> kde-base/kdeaddons-meta-3.4.3
> 
> kde-base/kdeadmin-meta-3.4.3
> ...

 

2) Suddetti metapacchetti hanno installato anche software che a me non interessa, tipo "kfloppy"

3) Per fare in modo che ad ogni aggiornamento portage non mi reinstallasse "kfloppy" &C. dovevo rimuovere i metapacchetti (o Portage si accorgeva di dipendenze mancanti e provvedeva a risolverle)

4) Una volta rimossi i metapacchetti, "emerge --depclean" considera tutto kde come dipendenze inutili, quindi a meno che non volessi piallare kde non potevo usare --depclean

L'unico modo valido che ho trovato per risolvere i modo indolore è usare il file package.provided che da quel che ho letto nel wiki pare sia fatto a posta.

Fa credere al sistema che kfloppy &C siano installati e questo non si lamenta.

Il suo utilizzo, nel caso dei metapacchetti, è assolutamente indolore. Diverso se lo usassi per le glibc...  :Very Happy: 

 *k.gothmog wrote:*   

> 
> 
> potresti anche creare i pacchetti (quickpkg) e poi reinstallare da pacchetto (emerge -k) qualcosa che stia in cima all'albero delle dipendenze.
> 
> ci metti pochi minuti, usando i pacchetti

 

Non so, non credo di aver capito.

Che pacchetti dovrei creare? Tutti quelli di kde?   :Confused: 

----------

## .:chrome:.

ripeto... usare package.provided secondo me non è affatto il metodo migliore.

il fatto che ti chieda di disinstallare vuol dire che l'albero delle dipendenze è sballato.

potresti ripristinare il tutto reinstallando il pacchetto che sta in cima al suddetto albero, che è certamente meglio di package.provided. se lo fai con il metodo che ti dicevo prima ci metti pochi minuti e non devi ricompilare niente.

chiaro adesso?

----------

## jordan83

 *k.gothmog wrote:*   

> ripeto... usare package.provided secondo me non è affatto il metodo migliore.
> 
> il fatto che ti chieda di disinstallare vuol dire che l'albero delle dipendenze è sballato.
> 
> 

 

Uhm... non sono d'accordo.

Il mio albero di dipendenze non è sballato.

La spiegazione del mio problema sta in quello che ha detto poco sopra "MeMyselfAndI".

Tutti i pacchetti di Kde dipendono dai metapacchetti sopra: se rimuovo i metapacchetti, tutti i pacchetti di kde diventano dipendenze inutili e portage è disposto a rimuoverli.

 *k.gothmog wrote:*   

> 
> 
> potresti ripristinare il tutto reinstallando il pacchetto che sta in cima al suddetto albero, che è certamente meglio di package.provided. se lo fai con il metodo che ti dicevo prima ci metti pochi minuti e non devi ricompilare niente.
> 
> chiaro adesso?

 

Certo, ho capito quello che intendi.

Infatti ho reinstallato i metapacchetti che sono in cima all'albero delle dipendenze.

"package.provided" mi serve solo a fare in modo che kfloppy &C. non mi vengano reinstallati perchè dipendenze dei metapacchetti.

Faccio credere al sistema che siano installati, anche se non lo sono.

Credo che stiamo dicendo le stesse cose ma in modo diverso   :Smile: 

Ti ringrazio ancora per i tuoi suggerimenti e per la costanza con cui mi hai aiutato.

Alla prossima!   :Smile: 

----------

## Onip

basta aggiungere le righe relative ai pacchetti nel file world ( /var/lib/portage/world ) senza ricompilare niente e senza package.provided

Byez

----------

## X-Act!

Io ci ho riflettuto parecchio su quale fosse il miglior modo di gestire i pacchetti di kde e alla fine sono arrivato ad una soluzione che mi sembra pulita e mi soddisfa perfettamente:

ho creato nel portage overlay un mio ebuild (che ho chiamato kde-meta-personal, ma ovviamente il nome non ha troppa importanza) e ci ho messo dentro tutto quello che mi serviva. Ci sono i pacchetti *-meta che volevo compilare in toto (ad es kde-base-meta) e altri pacchetti + specifici (ad es. ma vado quasi a caso, c'è kuickshow ma non tutto kde-graphics-meta). All'inizio è un lavoraccio spulciarsi tutti i pacchetti di kde, capire a cosa servono e decidere se li vuoi installare o no, ma una volta fatto ai un bel po' di vantaggi:

- Il file world è pulitissimo (c'è solo il tuo pacchetto)

- l'albero delle dipendenze è sempre congruo (non devi mascherare o mettere provided nessun pacchetto)

- (last but not least) in caso di aggiornamento ad una nuova versione un semplice emerge -u tuo-pacchetto-kde (o anche un emerge -u world) ti aggiorna all'ultima versione tutti e soli i componenti kde che tu hai scelto (a meno di settare le keyword ove necessarie, ma per questo c'è il buon forcekeymask).

Per contro gli svantaggi sono (oltre al lavoro iniziale richiesto) pochi: l'unico che ora mi viene in mente è che ad ogni nuova versione rischi di perderti qualche eventuale nuovo pacchetto che nella versione prima non c'era e che magari vorresti, ma quando (e se) te ne accorgi lo emergi da solo oppure lo aggiungi al tuo ebuild e aggiorni, tutto qui.

Ci ho appena fatto l'aggiornamento da kde 3.5.0 al 3.5.2 e praticamente non mi sono accorti di niente!

Che ne pensate?

----------

## Peach

intervengo in questo post col rischio di dire una cavolata, ma recentemente sono incappato in questo tool 

UDEPT

l'ho trovato davvero efficiente e pratico

l'opzione di depclean che incorpora mi ha davvero aiutato

```
# dep -w
```

 :Wink: 

spero possa essere d'aiuto a qualcuno...

----------

## .:chrome:.

 *jordan83 wrote:*   

> "package.provided" mi serve solo a fare in modo che kfloppy &C. non mi vengano reinstallati perchè dipendenze dei metapacchetti.

 

ah... allora scusami, ma avevo capito il contrario, cioé che voleva disinstallare dei pacchetti che non lo dovevano essere, e non che voleva installare pacchetti che non volevi.

 *Onip wrote:*   

> basta aggiungere le righe relative ai pacchetti nel file world ( /var/lib/portage/world ) senza ricompilare niente e senza package.provided

 

ma veramente la modifica del file world è una pratica sconsigliatissima. esiste appunto package.provided per fare quelle operazioni, e l'uso che ne ha fatto jordan83 è quello corretto

----------

## Onip

 *k.gothmog wrote:*   

>  *Onip wrote:*   basta aggiungere le righe relative ai pacchetti nel file world ( /var/lib/portage/world ) senza ricompilare niente e senza package.provided 
> 
> ma veramente la modifica del file world è una pratica sconsigliatissima. esiste appunto package.provided per fare quelle operazioni, e l'uso che ne ha fatto jordan83 è quello corretto

 

Veramente non capisco. Lui aveva installato il pacchetto (es.) kdenetwork-meta che si installa, come dipendenze, sia kmail sia kopete. Mettiamo che il primo gli piaccia e il secondo no. Se toglie kopete poi al prossimo update emerge glielo rimetterà, giustamente, perchè dipendenza del meta. A questo punto per personalizzare bene il sistema occorre emergere -C il meta, ma depclean gli segnerà sia kopete sia kmail come dipendenze indesiderate e glieli vorrà togliere. Bisogna segnalare al sistema che kmail è, in realtà, un programma "desiderato". La soluzione "pulita e ottima" consiste nel emergerlo, ma siccome è già stato installato come dipendenza, l'unica cosa che un emerge farebbe in più è quella di aggiungerlo al world. Allora perchè non farlo "a mano"? Io l'ho fatto parecchie volte e non è mai esploso niente.

Tra l'altro l'uso di package.provided è corretto solamente quando, appunto, si fornisce al sistema il pacchetto in questione con metodi alternativi a portage, non quando non lo si vuole. Mettiamo che, un giorno, vorrà installare un programma che abbia kopete come dipendenza. Essendo in provided non verrà emerso, ma il programma voluto o non compilerà oppure avrà mal funzionamenti.

Sbaglio?

Byez

p.s. [Joke on] saluto calorosamente tutto il forum. so già che k.gothmog, dopo che l'ho contraddetto sulla pubblica piazza, mi spezzerà tutte le dita. Quindi per un po' no potrò postare...   :Wink:  [Joke off]

----------

## .:chrome:.

uhm... non hai tutti i torti

tuttavia se lui non se ne fa una mazza di alcuni pacchetti (il citato kfloppy) non penso sia sbagliato metterlo in package.provided, a patto che si ricordi di averlo fatto nel caso sorga il problema che dici tu.

comuqnue quello su cui non ero d'accordo con te era la modifica manuale del file world  :Wink: 

----------

## jordan83

 *Onip wrote:*   

> 
> 
> Tra l'altro l'uso di package.provided è corretto solamente quando, appunto, si fornisce al sistema il pacchetto in questione con metodi alternativi a portage, non quando non lo si vuole. Mettiamo che, un giorno, vorrà installare un programma che abbia kopete come dipendenza. Essendo in provided non verrà emerso, ma il programma voluto o non compilerà oppure avrà mal funzionamenti.
> 
> Sbaglio?
> ...

 

No, hai perfettamente ragione.

Appena ho un po' di tempo credo aggiungerò i pacchetti al file "world".

Nel man ho notato questo:

 *Quote:*   

> 
> 
> /var/lib/portage/world
> 
>     Contains a list of all user-specified packages. You can safely edit this file, adding packages that you want to be considered in world class updates and removing those that you do not want to be considered.
> ...

 

Il file world si può effettivamente editare "a piacere".

Certo se cifosse una procedura automatica, sarebbe meglio.

Servirebbe un'opzione tipo "--onlydeps" che installasse solo le dipendenze del metapacchetto e le aggiungesse al file "world" automaticamente.   :Confused: 

----------

## u238

potresti provare così:

```

emerge -p kde-meta-desiderato | grep ebuild | cut -c17- >> /var/lib/portage/world

```

oppure stamparli a video e poi scegliere quali aggiungere a world  :Wink: 

----------

