# pacchetti in piu' slot

## adam_z

Volendo verificare se QT era ancora installato in piu' slot, mi sono informato e ho letto che con

```
eix -ci2
```

mi da' una lista dei pacchetti in piu' slot.

Dopo aver installato eix e fatto update-eix ho dato il comando sopra e mi ha risposto:

 *GENTOO wrote:*   

> [I] app-text/docbook-sgml-dtd (3.0-r3(3.0)@03/05/06 3.1-r3(3.1)@05/21/06 4.0-r3(4.0)@05/21/06 4.1-r3(4.1)@05/21/06 4.2-r2(4.2)@06/11/06 4.4(4.4)@05/19/06): Docbook SGML DTD 4.4
> 
> [I] app-text/docbook-xml-dtd (4.1.2-r6(4.1.2)@07/01/06 4.2-r1(4.2)@05/24/06 4.4-r1(4.4)@06/23/06): Docbook DTD for XML
> 
> [I] app-text/docbook-xml-simple-dtd (1.0-r1(1.0)@05/21/06 4.1.2.4-r2@05/19/06): Docbook DTD for XML
> ...

 

Mamma mia quanti! Mi e' sorto subito un dubbio: sono io che non installo bene i pacchetti, oppure "grosso modo" e' tutto normale?

Cosa mi dite?

GRAZIE in anticipo

----------

## bandreabis

E' grosso modo normale???

Prova a farti dare una risposta da:

```
emerge -p --depclean
```

----------

## comio

 *adam_z wrote:*   

> Volendo verificare se QT era ancora installato in piu' slot, mi sono informato e ho letto che con
> 
> ```
> eix -ci2
> ```
> ...

 

Mi pare abbastanza standard. Ti conviene installare udept per fare un po' di pulizie... ma la situazione che hai è abbastanza tipica.

ciao

----------

## adam_z

innanzitutto grazie delle risposte.

Il dubbio mi era sorto perche', per sbaglio, invece che digitare il classico # emerge -uDNpv world per verificare gli aggiornamenti, ho digitato

```
# emerge -eDNpv world
```

che mi ha dato il seguente messaggio (vado a memoria)

"net-print/foomatic non e' piu' nel tree" per svariati secondi prima di listare una serie incredibile di pacchetti (dotuta al parametro -e).

Ora ho cercato della documentazione di quel pacchetto e non ho trovato nulla. Lo posso eliminare senza perdere la possibilità di stampa sulla vecchia CANON LBP-660 collegata in rete ad un PC con WINDZOZ?

Infine ho provato, come mi hai consigliato,

```
# emerge -p --depclean
```

 * wrote:*   

> *** WARNING ***  Depclean may break link level dependencies.  Thus, it is
> 
> *** WARNING ***  recommended to use a tool such as `revdep-rebuild` (from
> 
> *** WARNING ***  app-portage/gentoolkit) in order to detect such breakage.
> ...

 

Alcuni mi sembrano "segabili" altri mi lasciano piu' perplesso.

cosa mi dite?

----------

## comio

 *adam_z wrote:*   

> 
> 
> Alcuni mi sembrano "segabili" altri mi lasciano piu' perplesso.
> 
> cosa mi dite?

 

hai quale versione di kde? è strano che ti voglia fare fuori kdm. Gli altri potrebbero essere dipendenze non usate (ma devi vedere te).

ciao.

luigi

----------

## bandreabis

Quando una volta ho avuto una list di depclean così lunga, ho fatto segare quello che voleva e ho reistallato i pacchetti che sapevo di avere emerso io a manina e poi ho dato un 

```
emerge -uDN world
```

Operazione fatta a mio rischio e pericolo.  :Rolling Eyes: 

----------

## djinnZ

docbook è normale che ti ritrovi almeno tre o quattro versioni installate (tutto in /etc se non erro) e vuoi ridurli togli la use doc.

java per ora è normale perchè hai 1.4 (java 1) per compilare e 1.5 (java 2) per eseguire.

qt credo che saprai della questione qt4 vs qt3 (al massimo rivedi le use flag, ma ci sono un paio di applicazioni kde che chiedono per forza la qt4)

glib e automake come sopra

gtk controlla le use flag ma è normale

db devono essere almeno due.

tutto normalissimo.

Il kdm o è perchè hai metà meta metà normale o perchè ha installato manualmente. Se invece hai fatto l'installazione meta-parziale (ciè non c'è in world kde-meta ma i vari kdelibs-meta, kdebase-meta etc.) può essere che ti sei scordato kdeadmin o kdebase non ricordo.

Oppure può essere un errore di portage (alle volte --depclean sbaglia, c'è un apposito avviso). Se è un errore te ne accorgi dando emerge -aDNuv world e lui vuole installarti un pacchetto appena rimosso. Nel dubbio per non perdere tempo usere quickpkg per fare copia dei pacchetti da rimuovere, l'emerge --depclean, un emerge -DNuK world ed un revdep-rebuild. Così sei sicuro che tutto è a posto.

----------

## adam_z

x comio

Versione 3.5.

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

 *djinnZ wrote:*   

> 
> 
> Il kdm o è perchè hai metà meta metà normale o perchè ha installato manualmente. Se invece hai fatto l'installazione meta-parziale (ciè non c'è in world kde-meta ma i vari kdelibs-meta, kdebase-meta etc.) può essere che ti sei scordato kdeadmin o kdebase non ricordo. 
> 
> 

 

Mi spieghi meglio questo punto.

Preciso solo questo, il KDE l'ho migrato, a suo tempo, dalla versione monolitica a quella a pacchettini. Non ho installato tutto ma solo i singoli pacchetti che mi interessavano. Penso di avere una versione molto minimale di KDE ma posso anche sbagliarmi. Per verificare come posso fare? Ti posto il file "world"?

DUBBIO-CURIOSITA': da come scrivi, sembra che il QT3 sia preferibile al QT4. Ma forse sono io che interpreto male le tue parole.

ALTRO DUBBIO: quando aggiorno uno di questi pacchetti in piu' slot (e in piu' versioni) vengono aggiornati tutti gli slot (e tutte le versioni) oppure solo l'ultima? oppure solo quella installata piu' di recente?

 *djinnZ wrote:*   

> 
> 
> Oppure può essere un errore di portage (alle volte --depclean sbaglia, c'è un apposito avviso). Se è un errore te ne accorgi dando emerge -aDNuv world e lui vuole installarti un pacchetto appena rimosso. Nel dubbio per non perdere tempo usere quickpkg per fare copia dei pacchetti da rimuovere, l'emerge --depclean, un emerge -DNuK world ed un revdep-rebuild. Così sei sicuro che tutto è a posto.
> 
> 

 

In soldoni qui mi dici di far segare tutto quello che vuole segare (i 26 pacchetti), e poi provare ad aggiornare con # emerge -uDNav world e vedere se lo ri-installa. Ho capito bene?

PS: sono molto niubbo in tutto. Uso GENTOO solo per il piacere che da' usare un PC sempre funzionante! Purtroppo l'ho montato solo sul PC di svago.

----------

## Scen

Riguardo a kdm: in qualche aggiornamento recente degli ebuild "split" di KDE, questo pacchetto è stato rimosso dalle dipendenze del meta-pacchetto kdebase-startkde (ovvero l'installazione ULTRAminimale di KDE), per cui successivamnte depclean lo segnalava come pacchetto da eliminare. Per ovviare a questo problemino, o lo si installa in world

```

emerge --noreplace kdm

```

oppure si installa un meta-pacchetto che lo include nelle sue dipendenze (es.)

```

emerge kdebase-meta

```

Se già hai installato manualmente diversi pacchetti split KDE, ti consiglio la prima via (è un pacchetto in più in world, niente di problematico  :Cool:  )

Discorso QT3 vs QT4: KDE 3.x dipende da QT3, mentre il futuro KDE4 (e anche altri pacchetti di altro tipo) dipende da QT4. Non c'è niente di preferibile: se un pacchetto ha la USE "qt4", se vuoi abilitarne le funzionalità che dipendono da qt4, abilita la USE; stesso discorso per "qt3"  :Wink: 

Riguardo agli slot: viene aggiornata la versione più recente dello slot più nuovo  :Smile: 

Riguardo alla rimozione dei pacchetti segnalati da depclean: come ti ha consigliato djinnZ, fatti un backup dei pacchetti che andrai a rimuovere

```

quickpgk <nome_pacchetto>

```

, poi:

```

# emerge --depclean

...

# emerge -akDNuv --with-bdeps y world

...

# revdep-rebuild

...

```

E sei apposto  :Smile:  (io ad intervalli regolari effettuo questa sequenza di operazioni e non ho mai avuto grossi problemi)

Nel caso tu abbia bisogno di reinstallare subito un pacchetto rimosso da depclean (e del quale avevi fatto backup):

```

emerge -aKv <nome_pacchetto>

```

----------

## djinnZ

 *adam_z wrote:*   

> In soldoni qui mi dici di far segare tutto quello che vuole segare (i 26 pacchetti), e poi provare ad aggiornare con # emerge -uDNav world e vedere se lo ri-installa. Ho capito bene?

 

Purtroppo si.

In realtà, di sicuro, alcuni pacchetti sono necessari solo a compilarne altri (per esempio jadetex ti sarà servito per generare la documentazione di non ricordo più cosa) e vengono riemersi solo con emerge --with-bdeps y -aDNuv world.

Tuttavia vedo anche kdepasswd tra quelli da eliminare. Quindi fermati un attimo.

Per installare kde ci sono diversi metodi:

1. "emerge kde" e ti becchi tutto kde

2. "emerge kdebase kdelibs kdegames ..." e casomai non ti installi kdeedu (i quiz e quella specie di tutor per il latrino) che non si serve a niente. Quando per esempio aggiornano il solitario ti ricompili tutto kdegames.

3. "emerge kde-meta" ti becchi sempre tutto kde (e compilando su disco ci metti un bel 20% di tempo in più alla prima installazione) ma quando aggiornano il solitario emerge -aDNuv world ricompilerà solo quello.

4. "emerge kdebase-meta kdelibs-meta kdegame-meta ..." come per la 2 ma con i vantaggi/svantaggio iniziale della 3

5. "emerge kdm kmixer kwrite..." (e qui la lista è lunghissima) Il vantaggio è che installi veramente solo quello che vuoi lo svantaggio è che l'installazione iniziale richiederà ancora più tempo perchè quel pachiderma di portage ci mette un secolo a ricolcolare le dipendenze di tutti i pacchetti in world.

6. "emerge kdelibs-meta kdebase-meta kmixer kdm kpasswd kwrite ..." e questa è la soluzione che uso io per tentare di rendere il world un poco più scarno visto che più che altro mi interessa eliminare alcuni pacchetti come klilo (che giudico molto pericoloso) ma non mi serve smantellare kde.

Se ad esempio usi xdm o gdm al posto di kdm pur usando kde come wm&desktop kdm puoi tranquillamente rimuoverlo ma se invece hai l'avvio automatico di X con kdm vuol dire che te lo sei dimenticato e ti basta anche un emerge -n kdm per aggiungerlo a world e "toglierti dalle mazzate".

Da quello che ho capito tu sei passato alla soluzione n°5 dalla n°1 e ti sei scordato qualcosa, nessun problema. Prova a dare un emerge -DNunpv kde-meta e così vedi cosa manca in world dei pacchetti kde e quali sono installati ma hai dimenticato di aggiungerli.

Di norma per evitare sorprese prima di un --deepclean è meglio fare un backup dei pacchetti (c'è un thread apposito in documentazione ed ho postato anche una mia soluzione "pure bash") così che se ti capita che qualcosa non funziona al momento (capita) puoi sempre ripristinarla con l'opzione -K (-k installa da binario o ricompila se le use sono diverse, -K installa da binario e basta).

edit: scen mi ha battuto sul tempo ma sommando quel che abbiamo riportato dovresti avere sufficienti informazioni. Se poi vuoi sapere come portarti a mezzo kde-meta mezzo pacchetti individuali se ne riparla. Oggi sto soffrendo troppo.

per fare il backup di tutti i pacchetti puoi usare questo comando

```
(cd /var/db/pkg ; for c in $(ls | grep -v virtual); do (cd $c ; for n in $(ls); do quickpkg "=$c/$n" ; done) ; done)
```

----------

## adam_z

ho verificato nel file /etc/conf.d/xdm che uso kdm, quindi ho fatto

```
# emerge --noreplace kdm

```

Quindi --depclean non me lo dava piu' da rimuovere -> PRIMO PROBLEMA RISOLTO!

Poi rifacendo

```
# emerge -p --depclean

```

Non mi dava piu' il listato di prima, ma dava invece un problema cond kdepasswd. Ho verificato che la versione installata era la 3.5.2 mentre gli altri componenti di kde sono alla 3.5.5.

Cosi' lo ho aggiornato e tutto e' tornato a posto, ora mi da' il listato postato poco sopra senza i due pacchetti (kdm e kdepasswd).

Ho fatto come mi avete consigliato (siete GRANDI), segando tutti e verificando che non ci sia niente da "recuperare":

```

emerge --depclean

...

emerge -uDNnak world

```

TUTTO OK!

THX

----------

## djinnZ

emerge --depclean può sbagliare ed eliminare un paio di pacchetti necessari e questo rientra nelle possibilità ma soprattutto e certamente elimina tutti i pacchetti necessari alla compilazione ma non all'esecuzione dei programmi. Detti pacchetti vengono ripristinati solo ed esclusivamente con emerge --with-bdeps y -DNu world. Senza il --with-bdeps hai un sistema completo a runtime ma non per l'aggiornamento. In più diversi automake interni ai pacchetti se ne fregano delle impostazioni di portage e basano l'inclusione delle librerie solo su quello che è effettivamente installato e potresti avere degli errori di linking visto che i devel, non avendo di meglio da fare, modificano gli ebuild con la tendenza a semplificare le dipendenze piuttosto che a complicarle.

Quindi la sequenza del cleaning esatto è

```
(cd /var/db/pkg ; for c in $(ls | grep -v virtual); do (cd $c ; for n in $(ls); do quickpkg "=$c/$n" ; done) ; done)

emerge --depclean

emerge --with-bdeps y -aDNuKv world

revdep-rebuild -- -K
```

fatto questo vai ad analizzarti l'output di emerge --depclean -pv e decidi cosa aggiungere con 

```
emerge -nk pacchetto1 pacchetto2 etc.
```

Infine lanci il revdep-rebuild di nuovo.

In questo modo sei sicuro che il sistema è stato ripulito dalle dipendenze inutili.

Alternativamente puoi pensare di non fare il backup di tutti i pacchetti ma solo di quelli da eliminare, di usare direttamente il -k ma --depclean e -aDNnuv dopo non fanno altro che cristalliuzzare tutte le dipendenze "dubbie" riportandole nel world, spero solo che non hai usato anche --with-bdeps y altrimenti ti tocca editare il file world ed eliminare le dipendenze per la sola compilazione.

----------

## Scen

 *djinnZ wrote:*   

> emerge --depclean può sbagliare ed eliminare un paio di pacchetti necessari e questo rientra nelle possibilità ma soprattutto e certamente elimina tutti i pacchetti necessari alla compilazione ma non all'esecuzione dei programmi.

 

No, se un pacchetto è inserito tra le dipendenze DEPEND di un pacchetto non verrà MAI rimosso da depclean: quest'ultimo, stringi stringi, tira fuori le differenze tra l'elenco attuale dei pacchetti installati e quello generato dal  emerge -e world in quel momento, in pratica i pacchetti che non servono più.

Con --with-bdeps y Portage non considera le dipendenze di SOLA compilazione (quindi solo in DEPEND ma non in RDEPEND), riducendo i tempi di calcolo (comunque, da quanto ho potuto constatare, non mi pare ci siano grandi differenze, in quanto di dipendenze di questo tipo ne ho viste poche); se comunque si rimuove una dipendenza di compilazione di un pacchetto, essa verrà comunque reinstallata nel momento in cui quest'ultimo viene aggiornato, anche senza --deep e/o --with-bdeps y.

----------

## djinnZ

@scen

mi riferivo sempre al caso comune di variazione delle dipendenze, se una libreria rilevata ed inclusa dall'automake del piffero (perchè ci sono diversi automake che se ne fregano dei --with-vattelappesca e dei --no-vattelappesca passati dall'ebuild, ma sono errori dei pacchetti in realtà non di portage) ma non è più in DEPEND viene rimossa (nel mio caso era per variazione delle use flag) rischi di ritrovarti con qualche programma bloccato.

Può essere anche che era un bug transitorio (un annetto e mezzo fa) ma i casini me li ha fatti. Niente di grave od irrimedibile ma sempre meglio evitare secondo me.

Quanto agli RDEPEND ci sono alcuni dei pacchetti più rognosi da compilare (tutta la paccottiglia dei generatori di documentazione a cominciare da docbook) e spesso mi capita di non poterli ricompilare con il nuovo assetto di librerie senza decrementare l'ottimizzazione o passare alla prima versione instabile. Quindi nel dubbio me li porto sempre dietro con il backup in binario. Da quando ho adottato questo metodo le mie bestemmi si sono ridotte di parecchio.

----------

## adam_z

per la verità non ho fatto i pkg dei pacchetti che ho eliminato con --depclean.

se ho capito bene i pacchetti usati solo per compilare altri pacchetti al prox aggiornamento (di questi pacchetti) li ricompilera' senza la necessita' di particolari settaggi (tipo with-bdeps y, o altro)

 *passaggio oscuro wrote:*   

> 
> 
> Alternativamente puoi pensare di non fare il backup di tutti i pacchetti ma solo di quelli da eliminare, di usare direttamente il -k ma --depclean e -aDNnuv dopo non fanno altro che cristalliuzzare tutte le dipendenze "dubbie" riportandole nel world, spero solo che non hai usato anche --with-bdeps y 
> 
> 

 

Potresti spiegarmi meglio questo passaggio che non l'ho capito.

ancora THX

----------

## lavish

Spostato dal Forum di discussione italiano al Forum italiano (Italian).

----------

