# depclean contro -DuN world [Risolto]

## !ico

salve, ho un altro problema da sottoporvi. 

ho notato che ne esiste uno un po' simile nel forum, ma non faceva al caso mio..

depclean mi dice:

```
>>> These are the packages that would be unmerged:

 sys-libs/db

    selected: 4.2.52_p4-r2 

   protected: none

     omitted: 4.3.29-r2 

```

se io do depclean però, il successivo emerge -avDuN world mi emerge sys-libs/db-4.2.52_p4-r2 e cosi via..

il "bello" è eix -l sys-libs/db:

```
sys-libs/db

     Available versions:  

        (1)

                        1.85-r1

                        1.85-r2

                        1.85-r3

        (3)

                        3.2.9-r10

                        3.2.9-r11

        (4.2)

                        4.2.52_p2-r1

                        4.2.52_p4-r2

        (4.3)

                ~       4.3.29-r2

        (4.4)

                ~       4.4.20_p4

        (4.5)

                ~       4.5.20_p2

     Installed versions:  4.2.52_p4-r2(4.2)(13:31:45 06/04/07)(-bootstrap -doc -elibc_FreeBSD -java -nocxx -tcl -test)

                          4.3.29-r2(4.3)(03:56:07 04/17/07)(-bootstrap -doc -elibc_FreeBSD -java -nocxx -tcl -test)

     Homepage:            http://www.oracle.com/technology/software/products/berkeley-db/index.html

     Description:         Oracle Berkeley DB

```

ma io non ho mai smascherato (4.3) ~ 4.3.29-r2.. eppure depclean mi vuole tenere quella e togliere l'altra..  :Rolling Eyes: 

idee?

ola  :Wink: 

----------

## Scen

siccome il pacchetto sys-libs/db è "slottabile", ovvero si possono installare più versioni "affiancate" contemporaneamente, attualmente hai installato sia la versione 4.2* sia la 4.3*.

Teoricamente non dovrebbe esserci nessun pacchetto che richiede specificatamente la 4.2*, per cui depclean lo marca come da rimuovere, in quanto inutile.

Quando ridai l'emerge di world, aggiungi l'opzione --tree, così vedi chi richiede la versione 4.2 (strano però, o hai qualcosina da sistemare tu o è un bug di emerge  :Razz: )

Dopo aver eseguito il depclean, postaci l'output di

```

emerge -pDNtuv world

```

N.B. Attento che dopo la rimozione di db-4.2* bisogna sistemare un bel pò di collegamenti a librerie tramite revdep-rebuild.

----------

## !ico

```
ico@gentoo ~ $ sudo emerge -avtDuN world

These are the packages that would be merged, in reverse order:

Calculating world dependencies... done!

[nomerge      ] app-portage/gentoolkit-0.2.3-r1  

[nomerge      ]  dev-lang/python-2.4.4-r4  USE="berkdb gdbm ncurses readline ssl -bootstrap -build -doc -examples -ipv6 -nocxx -nothreads -tk -ucs2" 

[ebuild  NS   ]   sys-libs/db-4.2.52_p4-r2  USE="-bootstrap -doc -java -nocxx -tcl -test" 0 kB 

Total: 1 package (1 in new slot), Size of downloads: 0 kB

```

avevo già dato revdep-rebuild, ma non trova niente (ne prima ne dopo depclean).

Sapevo la questione degli slot, ma non capisco perchè ho installato una versione ~ quando non l'ho mai smascherata..   :Confused: 

ehm, e a questo punto?   :Razz:  mi conviene emergere direttamente sys-libs/db-4.2.52_p4-r2 per avercerlo in world?

ola e grazie  :Wink: 

----------

## Onip

 *python-2.4.4-r4.ebuild wrote:*   

> 
> 
> berkdb? ( >=sys-libs/db-3.1 )
> 
> 

 

è strano l'output del tuo emerge, all'ebuild di python dovrebbe andare benone la versione 4.3 di sys-libs/db...

----------

## Scen

E' strano sì.

Prova a fare queste operazioni:

Accedi ad una shell come root (NON utilizzando sudo)

Rimuovi il contenuto di /var/cache/edb/ 

```
rm -frv /var/cache/edb/*
```

Ricrea la cache di Portage 

```
emerge --metadata
```

Riprova con il comando di aggiornamento di world

----------

## Ic3M4n

io metterei il pacchetto che non vuoi in portage.mask e controllerei cosa vuol fare emerge.

logicamente utilizzando il numero della versione.

----------

## !ico

 *Scen wrote:*   

> 
> 
> Prova a fare queste operazioni: ..
> 
> 

 

fatto, ma non ha portato cambiamenti, peccato..

@Ic3M4N: il problema è che non c'è un pacchetto che non voglio, perchè entrambi sono dipendenze di qualcosa...   :Rolling Eyes: 

mi conviene provare emerge --unmerge python && emerge -1 python?  :Confused:   visto che il problema sembra vanga da li..

ola  :Wink: 

----------

## Onip

 *!ico wrote:*   

> 
> 
> mi conviene provare emerge --unmerge python && emerge -1 python?
> 
> 

 

Se vuoi che emerge non ti funzioni più allora puoi cancellare tranquillamente python...

----------

## Scen

 *!ico wrote:*   

> mi conviene provare emerge --unmerge python && emerge -1 python?   visto che il problema sembra vanga da li..

 

 :Shocked:  Come ha detto Onip, se non vuoi sp****nare emerge, ti consiglio di non farlo (comunque ti verrebbe dato un warning megagalattico, che ti farebbe comunque riflettere  :Razz:  )

Segui il consiglio di Ic3M4n:

```

echo =sys-libs/db-4.2* >> /etc/portage/package.mask

```

(o nel file che vuoi, se utilizzi le subdirectory /etc/portage/package.*/)

e prova a ridare l'emerge di world. Portage probabilmente dovrebbe dirti perchè vuole emergere quella versione di db.

----------

## !ico

 *Onip wrote:*   

> 
> 
> Se vuoi che emerge non ti funzioni più allora puoi cancellare tranquillamente python...

 

D'oh, non ci avevo pensato   :Laughing: 

ho mascherato il 4.2* e pare che servi a pam:

```
Calculating world dependencies -

!!! All ebuilds that could satisfy ">=sys-libs/db-4.1.25" have been masked.

!!! One of the following masked packages is required to complete your request:

- sys-libs/db-4.3.29-r2 (masked by: ~amd64 keyword)

- sys-libs/db-4.2.52_p4-r2 (masked by: package.mask)

- sys-libs/db-4.4.20_p4 (masked by: ~amd64 keyword)

- sys-libs/db-4.2.52_p2-r1 (masked by: package.mask)

- sys-libs/db-4.5.20_p2 (masked by: ~amd64 keyword)

For more information, see MASKED PACKAGES section in the emerge man page or 

refer to the Gentoo Handbook.

(dependency required by "sys-libs/pam-0.78-r5" [installed])

```

ma il bello è che sys-libs/db-4.3.29-r2 (masked by: ~amd64 keyword) è installando secondo "eix -l"..    :Exclamation:   :Question: 

provo a unmergere quello (4.3.29) e a riaggiornare?

inoltre se vi puòessere utile:

```

ico@gentoo ~ $ equery depends db

[ Searching for packages depending on db... ]

dev-lang/perl-5.8.8-r2 (berkdb? sys-libs/db)

dev-lang/python-2.4.4-r4 (!build & berkdb? >=sys-libs/db-3.1)

sys-devel/libperl-5.8.8-r1 (berkdb? sys-libs/db)

sys-libs/gdbm-1.8.3-r3 (berkdb? sys-libs/db)

sys-libs/pam-0.78-r5 (berkdb? >=sys-libs/db-4.1.25)
```

ola e grazie  :Wink: 

----------

## Onip

 *!ico wrote:*   

> 
> 
> ma il bello è che sys-libs/db-4.3.29-r2 (masked by: ~amd64 keyword) è installando secondo "eix -l"..    
> 
> provo a unmergere quello (4.3.29) e a riaggiornare?
> ...

 

O fai come dici tu, oppure smascheri via package.keywords il 4.3.29-r2 (così ti eviti un emerge)

----------

## !ico

 *Onip wrote:*   

> 
> 
> O fai come dici tu, oppure smascheri via package.keywords il 4.3.29-r2 (così ti eviti un emerge)

 

ho seguito il tuo consiglio e funziona, anche se non ho ancora capito perchè emerge non lo vedesse installato e soprattutto chi me l'ha installato essendo masked..mah   :Rolling Eyes: 

grazie a tutti

ola  :Wink: 

----------

## Onip

il fatto che emerge non lo vedesse installato è corretto: è mascherato. In realtà lo considera installato, tant'è che puoi emergerlo -C, ma non lo considera valido nel calcolo delle dipendenze.

Il fatto che fosse installato può dipendere da te (l'hai smascherato per un periodo e te ne sei scordato) o da portage: a volte (raramente per fortuna) capita che qualche pacchetto venga smascherato e poi rimascherato per via di qualche problema sorto nel frattempo. Osservando il suo Changelog potresti scoprirlo ( /usr/portage/sys-libs/db/ChangeLog ) .

Il fatto che sia slottato, poi, ha fatto in modo (penso) che emerge non ti chiedesse il downgrade, ma ti proponesse solo di installare il 4.2

Purtroppo quella versione è stabile su x86 e davo per scontato che anche tu fossi su questa arch, visto che non specifichi diversamente. Altrimenti avremmo risolto prima.

Byez

----------

