# Brauche ich libstdc++ 3.3 nach Upgrade auf gcc-4.1.2 noch?

## Fink17

Hallo,

ich bin vor kurzem erfolgreich auf gcc-4.1.2 umgestiegen. Nach dem "emerge -eav world" will ich nun das System aufräumen.

```
emerge -pv depclean
```

teilt mir nun mit, dass es "libstdc++" Version 3.3 löschen will. 

Ich kann mich dunkel erinnern, dass libstdc++ für den Umstieg von gcc-3.3 auf gcc-3.4 sehr wichtig war. Daher frage ich mich, ob es nach dem deinstallieren von libstdc künftig zu Problemen beim Emergen kommen kann oder ob ich libstdc nach dem Umstieg auf gcc4 gefahrlos löschen kann?

Grüße

----------

## Necoro

```
necoro@Devoty ~ % equery d libstdc++

[ Searching for packages depending on libstdc++... ]

media-libs/win32codecs-20061022-r1 (real? =virtual/libstdc++-3.3*)

media-video/realplayer-10.0.8-r1 (!amd64? =virtual/libstdc++-3.3*)

x11-drivers/ati-drivers-8.37.6 (=virtual/libstdc++-3.3*)
```

also wie es scheint, wird das teil von binär-paketen benötigt, die halt mit dem gcc-3.3 kompiliert sind. wenn du die nicht hast, brauchst du sie denke ich nicht  :Smile: 

----------

## Fink17

Woran erkenne ich diese Binärpakete?   :Very Happy: 

----------

## Necoro

 *Fink17 wrote:*   

> Woran erkenne ich diese Binärpakete?  

 

mach einfach mal equery d libstdc++  :Smile:  (aber wenn emerge --depclean das runterschmeißen will, wird equery wohl auch nix finden)

----------

## Fink17

Doch, ein Paket hat es gefunden.

```

equery d libstdc++

[ Searching for packages depending on libstdc++... ]

media-libs/win32codecs-20061022-r1 (real? =virtual/libstdc++-3.3*)
```

Also sollte ich "libstdc" ins World-File tun?

----------

## Necoro

win32codecs braucht die libstdc++, wenn du das "real"-useflag hast (siehst du an dem real? vor der Abhängigkeit)... ("real" hier für realplayer, welches es ja nur binär gibt)

edit:/ und ins worldfile sollte so etwas eigentlich nie ... es ist eine Bibliothek und kein vom Benutzer installiertes Programm

----------

## Fink17

Habe ich nicht. Daher wird depclean "libstdc++" wahrscheinlich deinstallieren wollen.

edit: Also kann ich es deinstallieren?

----------

## Necoro

 *Fink17 wrote:*   

> edit: Also kann ich es deinstallieren?

 

Augenscheinlich  :Smile:  ... mach sicherheitshalber danach aber ein 

```
revdep-rebuild --library /usr/lib/libstdc++-v3/libstdc++.so.5*
```

----------

## SinoTech

BTW virtual/libstdc++ ist nicht sys-libs/libstdc++-v3. Wenn ersteres deinstalliert wird, ist zweiteres trotzdem noch installiert.

Cheers,

Sino

----------

## Necoro

 *SinoTech wrote:*   

> BTW virtual/libstdc++ ist nicht sys-libs/libstdc++-v3. Wenn ersteres deinstalliert wird, ist zweiteres trotzdem noch installiert.
> 
> Cheers,
> 
> Sino

 

Nope ... so wie ich das sehe, hängen die ganzen Pakete von virtual/libstdc++ ab ... und keines von sys-libs/libstdc++-v3. Insofern sollte das letztere nicht mehr installiert sein, wenn das erste deinstalliert wird.

----------

## SinoTech

 *Necoro wrote:*   

>  *SinoTech wrote:*   BTW virtual/libstdc++ ist nicht sys-libs/libstdc++-v3. Wenn ersteres deinstalliert wird, ist zweiteres trotzdem noch installiert.
> 
> Cheers,
> 
> Sino 
> ...

 

Hmm .. keine Ahnung welche der beiden Pakete als Abhängigkeit in den ebuilds angegeben wird. "virtual/libstdc++" wird jedenfalls als eigenständiges Paket gehandhabt. Heißt, wird das deinstalliert, ist zweiteres trotzdem noch installiert (So ist es jedenfalls bei mir). Evtl. gibt ja auch noch ein Paket das explizit "libstdc++-v3" als Abhängigkeit hat. Es sollte also nichts schaden zu prüfen ob irgendein Paket dieses explizit referenziert. Falls nicht, muss das dann separat deinstalliert werden.

Cheers,

Sino

----------

## Necoro

 *SinoTech wrote:*   

> Hmm .. keine Ahnung welche der beiden Pakete als Abhängigkeit in den ebuilds angegeben wird. "virtual/libstdc++" wird jedenfalls als eigenständiges Paket gehandhabt. Heißt, wird das deinstalliert, ist zweiteres trotzdem noch installiert (So ist es jedenfalls bei mir).

 

Eigentlich sollte sich emerge --depclean ja genau um sowas kümmern =) ... wenn es aber trotzdem noch installiert ist, liegt es bestimmt an einem fehlerhaften ebuild (ich hab auch so eins ... ist aber aus nem Overlay  :Wink: )

----------

## SinoTech

 *Necoro wrote:*   

>  *SinoTech wrote:*   Hmm .. keine Ahnung welche der beiden Pakete als Abhängigkeit in den ebuilds angegeben wird. "virtual/libstdc++" wird jedenfalls als eigenständiges Paket gehandhabt. Heißt, wird das deinstalliert, ist zweiteres trotzdem noch installiert (So ist es jedenfalls bei mir). 
> 
> Eigentlich sollte sich emerge --depclean ja genau um sowas kümmern =) ... wenn es aber trotzdem noch installiert ist, liegt es bestimmt an einem fehlerhaften ebuild (ich hab auch so eins ... ist aber aus nem Overlay )

 

Nö, hab grad gesehen das es bei mir daran liegt das "libstdc++-v3" im world file steht. Ich hatte es da eingetragen damit es auch dann installiert bleibt wenn es von portage augenscheinlich nicht mehr gebraucht wird. Gibt halt noch eine Menge anderer Software die ich nicht über portage beziehe, welche aber trotzdem noch mit dem alten gcc übersetzt wurde. Im Grunde aber auch kein wirkliches Problem wenn man bedenkt das die libstdc++-v3 gerade mal ~800 kb Speicher auf der Platte braucht  :Wink: .

Cheers,

Sino

----------

## Pegasus87

Also ich hatte gerade vor ein paar Tagen Probleme mit der libstdc++-v3. Ich hab GCC-4.1.2 und hab das Paket auch gelöscht, dadurch bekam ich beim Compilieren von gtkmm und glibmm Fehlermeldungen. Nachdem ich libstdc++-v3 wieder drauf hatte lief alles durch...

----------

## Fink17

So, so, jetzt habt ihr mich völlig verwirrt.   :Laughing: 

Wenn "libstdc++" aber problemlos später wieder nachinstallierbar ist, werde ich es wohl riskieren (nach einen backup versteht sich   :Very Happy:  ).

----------

## hoschi

Ich lese den Thread jetzt nicht durch:

libstdc++v3 braucht man um binaerkompatibel zu mit dem alten GCC kompiliereten C++ Anwendungen zu bleiben, liegt daran dass sich da von GCC-3.3 auf GCC-3.4 nochmal einiges geaendert hat. C++ als etablierte Programmiersprache ist noch relativ lebendig, es wird auch noch ein weiterer Standard erscheinen bis 2010.

Wer mit "emerge -ep world" einmal durch das gesamte System kompiliert hat und sonst nicht irgendwelche uralten Programme braucht diese kompatiblitaets Library nicht mehr. Auf keinen Fall sollte man aber die libstdc++.so.6 (ist eigt. ein link) aus dem GCC Verzeichnis loeschen, dass ist die echte C++ Library. Die C++-Library wird immer noch von GCC-Projekt selbst verteilt. Binaerdistributionen wie Debian liefern die libstdc++ allerdings seperat aus, da diese ja den GCC nicht immer installiert haben.

Im GCC-Migrationsleitfaden steht das uebrigens alles  :Wink: 

http://www.gentoo.org/doc/en/gcc-upgrading.xml

----------

