# disinstallazione programma con relative dipendenze

## Maialovic

oggi finalmente ho deciso di postare qursta domanda, dopo la installazione di eclipse

come si fa a disinstallare un programma con le relative dipensenze? voglio dire, portando ad esempio il mio caso: sto installando eclipse e per far cio sta installando con se altre 29 piccole applicazioni varie tipo jython ed altri......

quando verra il giorno ke voglio togliere eclipse, come faccio a togliere pure le applicazioncine ke mi sinstalla per far si ke esso funga?

----------

## bender86

emerge --pretend --verbose --depclean

----------

## Deus Ex

man emerge

----------

## Maialovic

appena ftto.......e ce ne fosse 1 di quelle ke ha installato........tutt'altre mi ha fatto vedere....tranne quelle ke mi a scaricato poco fa quando lho installato

----------

## crisandbea

 *Maialovic wrote:*   

> appena ftto.......e ce ne fosse 1 di quelle ke ha installato........tutt'altre mi ha fatto vedere....tranne quelle ke mi a scaricato poco fa quando lho installato

 

di cosa parli delle dipendenze di eclipse ????

----------

## Scen

 *Maialovic wrote:*   

> appena ftto.......e ce ne fosse 1 di quelle ke ha installato........tutt'altre mi ha fatto vedere....tranne quelle ke mi a scaricato poco fa quando lho installato

 

Devi rimuovere eclipse prima di lanciare il comando, altrimenti come può sapere quali dipendenze non sono più necessarie?  :Rolling Eyes: 

----------

## Kernel78

 *Maialovic wrote:*   

> appena ftto.......e ce ne fosse 1 di quelle ke ha installato........tutt'altre mi ha fatto vedere....tranne quelle ke mi a scaricato poco fa quando lho installato

 

Quelle che ti ha mostrato sono comunque dipendenze che il sistema riconosce come orfane quindi dovresti rendere consistente il sistema.

Penso che tu debba cancellarle ma non sapendo come sei arrivato a questa situazione dovresti valutare tu ...

----------

## X-Drum

 *bender86 wrote:*   

> emerge --pretend --verbose --depclean

 

seguito da un 

```
revdep-rebuild -p
```

----------

## Maialovic

e per rendere consistente il sistema devo ricompilarlo tutto? kaggia a  fa?

----------

## crisandbea

 *Maialovic wrote:*   

> e per rendere consistente il sistema devo ricompilarlo tutto? kaggia a  fa?

 

devi dare un :

```

revdep-rebuild

```

----------

## Scen

 *crisandbea wrote:*   

>  *Maialovic wrote:*   e per rendere consistente il sistema devo ricompilarlo tutto? kaggia a  fa? 
> 
> devi dare un :
> 
> ```
> ...

 

S', ma prima bisogna eliminare i pacchetti orfani.

```

emerge --depclean -av

```

e via   :Cool: 

Ehm...   :Rolling Eyes: 

@Maialovic:

 *Maialovic wrote:*   

> kaggia a  fa?

 

Per quanto riguarda il tuo "stile" di scrittura, se leggi le Linee Guida, Punto 4 è scritto:

 *Quote:*   

> 
> 
> COME E COSA POSTARE : 
> 
> Aiutate chi vi vuole aiutare: descrivete il vostro problema in maniera dettagliata e in un italiano il più possibile corretto (possibilmente evitando abbreviazioni in stile SMS).
> ...

 

----------

## Maialovic

beh allora dovremmo pure togliere l'uso di dialetti a modo di babbio e inglofonismi  :Very Happy:  e cavolate varie

----------

## randomaze

 *Maialovic wrote:*   

> beh allora dovremmo pure togliere l'uso di dialetti a modo di babbio e inglofonismi  e cavolate varie

 

infatti, secondo la mia modesta opinione, la frase "un italiano il più possibile corretto" significa anche di non postare in napoletano, calabrese, lombardo, ecc.

----------

## grick

Risposta semplice: (ma te l'hanno gia' suggerita)

Usa emerge per disinstallare il pacchetto che non ti serve piu' (diciamo eclipse):

```

emerge -C eclipse

```

A questo punto usi (squillo di trombe  :Smile:  ) di nuovo emerge per rimuovere le dipendenze installate da eclipse e non utilizzate da nessun altro pacchetto:

```

emerge --depclean

```

Controlla infine la consistenza delle tue dipendenze con:

```

revdep-rebuild

```

Risposta approfondita:

Quello che ho scritto sopra vale solo se hai un file world "pulito" (nessuna dipendenza "sbadatamente" inserita nel world per intenderci) altrimenti qualche dipendenza rimarra' installata anche senza che alcun pacchetto la richieda).

Il modo piu' comune con cui si "sporca" il file world e' reinstallando qualche dipendenza senza usare l'opzione oneshot di emerge. Puo' sembrare una possibilita' remota invece senza accorgersene in un paio di mesi ci si ritrova il file world pieno di lib e dipendenze varie.

Per risolvere il problema alla radice ti consiglio di installare il tool udept che (fra le altre cose) effettua una verifica del file world. 

Prima smaschera il pacchetto:

```

echo "app-portage/udept ~x86" >> /etc/portage/package.keywords

# o similare per la tua architettura e file keywords

```

Poi vai di emerge  :Smile:  :

```

emerge -av udept

```

Seguentemente per controllare la "consistenza" del tuo world file dai un bel:

```

dep -pw 

# Non effettua alcuna modifica infatti la p sta per 'pretend'

```

Controlla bene l'output mostrato da dep nel caso ci fossero stranezze (i.e. timidity++ e timidity-eawpatches sono mutuamente dipendenti e vengono entrambi indicati come ridondanti) e poi ci saranno sicuramente pacchetti che tu hai installato come world e ti vengono passati come dipendenze (i.e. mozilla-firefox e' una dipendenza di openoffice quindi viene indicato come ridondante se li hai entrambi nel world).

Quando sei pronto puoi togliere l'opzione pretend da dep

```

dep -w

```

ed eventualmente (se qualcosa nella fase di analisi dell'output non ti garbava) puoi fare del tuning editando direttamente il file world:

```

vim /var/lib/portage/world

```

Finita questa fase preliminare di "pulizia" del file world passiamo alle note dolenti di emerge --depclean. 

Normalmente ( a parte gli striscioni da stadio di warning quando lo lanci  :Smile:  ) emerge --depclean funziona egregiamente. Il problema in effetti non riguarda strettamente depclean ma piuttosto la gestione delle dipendenze fatta dagli sviluppatori.

Esempio chiarificatore: una volta kdm (l'alternativa kde-style di xdm) era una dipendenza (piu' o meno diretta) di kdebase-startkde. Un bel giorno venne rimossa dall'elenco di dipendenze di kdebase-startkde e depclean ovviamente voleva rimuoverlo perche' era a tutti gli effetti una dipendenza "orfana". E' bastato ovviamente aggiungere kdm al file world per risolvere il problema ma se non fossi stato attento mi sarei ritrovato un sistema compromesso al logout.

Morale della favola: come indicato nei sopracitati striscioni devi analizzare attentamente l'output dato da:

```

emerge --depclean --pretend

```

prima di procedere. Un buon consiglio e' utilizzare dep (o equery) per controllare le dipendenze inverse (cioe' i pacchetti che eventualmente si appoggiano a quelli che depclen vuole rimuovere) per ognuno dei pacchetti sulla lista:

```

dep -L pacchetto

```

oppure:

```

# Se non hai equery -> emerge gentoolkit 

equery d pacchetto

```

Se nonostante il controllo risultasse negativo l'output di depclean mostra qualcosa che conosci e non capisci perche' debba essere rimosso puoi sempre inserirlo nel file world usando:

```

emerge --noreplace pacchetto

# come indicato nei warning depclean

```

Infine dopo aver terminato con depclean, e' necessario effettuare un controllo per eventuali dipendenze "broken" ovvero non piu' soddisfatte usando un altro tool dal gentoolkit:

```

# Se non lo hai gia' fatto prima -> emerge gentoolkit

revdep-rebuilds --pretend

```

Questo comando ti illustrera' gli (eventuali) pacchetti da ricompilare per riportare il sistema in uno stato consistente. 

Dopo aver visionato la lista, (si fallo sempre, giusto l'altro giorno re-re voleva ricompilarmi openoffice!) puoi togliere al solito il pretend:

```

revdep-rebuilds

```

Spero che questo post ti sia utile (magari anche a qualcun'altro  :Smile:  ).

----------

