# [RISOLTO] Non riesco a disinstallare sys-libs/libstdc++-v3

## lsegalla

Stavo facendo una pulizia dei pacchetti che non mi servono, fra i quali ho trovato libstdc++ che devo aver installato quando ho fatto dei tentativi con parallels-desktop, infatti:

```
gentoo-linux portage # qdepends -Q libstdc++

app-emulation/parallels-workstation-2.2.2112-r1

```

poi ho dato

```

gentoo-linux portage # emerge -C libstdc++

 virtual/libstdc++

    selected: 3.3

   protected: none

     omitted: none

>>> 'Selected' packages are slated for removal.

>>> 'Protected' and 'omitted' packages will not be removed.

>>> Waiting 5 seconds before starting...

>>> (Control-C to abort)...

>>> Unmerging in: 5 4 3 2 1

>>> Unmerging virtual/libstdc++-3.3...

 * GNU info directory index is up-to-date.

```

e quindi

```
gentoo-linux portage # emerge -C parallels-workstation

 app-emulation/parallels-workstation

    selected: 2.2.2112-r1

   protected: none

     omitted: none

>>> 'Selected' packages are slated for removal.

>>> 'Protected' and 'omitted' packages will not be removed.

>>> Waiting 5 seconds before starting...

>>> (Control-C to abort)...

>>> Unmerging in: 5 4 3 2 1

>>> Unmerging app-emulation/parallels-workstation-2.2.2112-r1...

 * GNU info directory index is up-to-date.

```

Appena pero' faccio un 

```
gentoo-linux portage # emerge -uDNp world

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

Calculating dependencies... done!

[ebuild   R   ] sys-libs/libstdc++-v3-3.3.6  USE="(-build%) (-nptl%*)"

[ebuild  N    ] virtual/libstdc++-3.3

```

Allora con eix ho provato a vedere e ho trovato che è ancora installato:

```
gentoo-linux portage # eix libstdc

[I] sys-libs/libstdc++-v3

     Available versions:  (5)  3.3.6

        {multilib nls}

     Installed versions:  3.3.6(5)(22:07:51 01/23/08)(nls nptl -build -multilib)

     Homepage:            http://gcc.gnu.org/libstdc++/

     Description:         Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++

* sys-libs/libstdc++-v3-bin

     Available versions:  *3.3.6!s

     Homepage:            http://gcc.gnu.org/libstdc++/

     Description:         Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++

* virtual/libstdc++

     Available versions:  (3.3)  3.3

     Homepage:            http://www.gentoo.org/proj/en/base/

     Description:         Virtual for the GNU Standard C++ Library

Found 3 matches.

```

Come faccio a liberarmi di quesot pacchetto?

Come mai continuo a ritrovarmelo ?Last edited by lsegalla on Wed Feb 18, 2009 12:11 pm; edited 1 time in total

----------

## bandreabis

Non so, prova ad aggiungere -t a emerge.

Magari vediamo da quale pacchetto dipende.

Forse era meglio se disinstallavi parallels-workstation e poi davi un emerge --depclean.

----------

## Scen

 *lsegalla wrote:*   

> 
> 
> poi ho dato
> 
> ```
> ...

 

Guarda bene... hai rimosso virtual/libstdc++, non sys-libs/libstdc++-v3, che ovviamente ti vuole reintrodurre il primo pacchetto.

Per cui quello che ti manca è:

```

emerge -C sys-libs/libstdc++-v3

```

 *bandreabis wrote:*   

> 
> 
> Forse era meglio se disinstallavi parallels-workstation e poi davi un emerge --depclean.
> 
> 

 

Confermo: è sempre la procedura corretta! Quella che hai seguito tu è sbagliata, nel senso che poi rischi di incappare in situazioni tipo questa, se non si èscaltri   :Rolling Eyes: 

----------

## lsegalla

Avevo provato come ha detto scen ma è evidente che devo aver commesso qualche errore di distrazione.

Adesso se faccio un emerge --depclean sarebbe utile ?

----------

## lsegalla

Se pero' faccio un emerge -uDNp world me lo ripropone questo pacchetto:

```

gentoo-linux luca # emerge -uDNp world

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

Calculating dependencies |^[[1; -^[... done!

[ebuild  N    ] virtual/libstdc++-3.3

```

----------

## bandreabis

Prova a dare il comando 

```
emerge -uDNpt world
```

che dovrebbe indicarti chi richiede quel pacchetto, e anche un 

```
cat /var/lib/portage/world |grep libstdc
```

 per vedere se nel caso ti sia finito per sbaglio in world.

----------

## lsegalla

```

gentoo-linux luca # emerge -uDNpt world

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

Calculating dependencies... done!

[nomerge      ] dev-java/sun-jre-bin-1.6.0.11

[ebuild  N    ]  virtual/libstdc++-3.3

gentoo-linux luca # cat /var/lib/portage/world |grep libstdc

gentoo-linux luca #

```

----------

## bandreabis

 *lsegalla wrote:*   

> 
> 
> ```
> 
> gentoo-linux luca # emerge -uDNpt world
> ...

 

Chiedo conferma a Scen... quindi virtual/libstdc++-3.3 è una dipendenza necessaria (per java).

----------

## Scen

 *bandreabis wrote:*   

> Chiedo conferma a Scen... quindi virtual/libstdc++-3.3 è una dipendenza necessaria (per java).

 

Yes   :Confused: 

```

# cat /usr/portage/dev-java/sun-jre-bin/sun-jre-bin-1.6.0.11.ebuild

...

RDEPEND="sys-libs/glibc

        x86? ( =virtual/libstdc++-3.3 )

...

```

----------

## lsegalla

Ho riprovato a rifare l'emerge e ora se lo è riemerso correttamente quindi todo ok

thanks

----------

## Elbryan

Comunque, tanto per la cronaca e per chiarire la situazione ai ponteziali niubbastri che passassero da questo thread, la sequenza delle operazioni corretta è quella prima di dare un emerge -C $pacchettointeressato, successivamente dare un emerge --depclean -a (lo switch -a è perché chiede conferma, così da controllare bene che non disinstalli cose importanti, e successivamente ancora (facoltativo ma io lo consiglio) dare un revdep-rebuild (che ricordo fa parte del pacchetto/collection gentoolkit).

Questa è la sequenza più corretta e sicura per effettuare le rimozioni dei pacchetti.

Nell'esempio sopra $pacchettointeressato intendo dire il pacchetto del quale ci vogliamo liberare, non della libreria.

emerge -C lo rimuove dal sistema, però, lasciando le dipendenze.

Infatti le librerie sono dipendenze che vengono successivamente rimosse dal "depclean" (se non sono condivise e utilizzate da altri pacchetti).

Il terzo comando, revdep-rebuild, fa un controllo al contrario delle dipendenze (REVerse DEPpendancy rebuild).

Nel caso ci siano file/librerie/pacchetti corrotti/broken/missing lui s'arrangerà a riemergerli.

Se ho scordato qualcosa / scritto qualche boiata correggetemi  :Smile: 

----------

## Onip

 *Elbryan wrote:*   

> Se ho scordato qualcosa / scritto qualche boiata correggetemi 

 

Per estrema sicurezza alla fine di tutto meglio controllare la consistenza del sistema con

```
# emerge -DuNav world
```

A volte, pochissime in realtà, mi è capitato che mi chiedesse di riemergere qualcosa di appena rimosso da depclean stesso. (per lo stesso motivo consiglio anche un quickpkg dei rimuovendi in caso siano mattoni consistenti )

----------

