# [Erledigt] mal wieder "emerge @preserved-rebuild"

## 3PO

Hallo Zusammen,

Bei mir nörgelt Portage schon eine ganze Weile wegen:

```
!!! existing preserved libs:

>>> package: media-libs/giflib-5.1.2

 *  - /usr/lib64/libgif.so.4

 *  - /usr/lib64/libgif.so.4.1.7

 *      used by /opt/icedtea-bin-6.1.13.9/jre/lib/amd64/libsplashscreen.so (dev-java/icedtea-bin-6.1.13.9)

Use emerge @preserved-rebuild to rebuild packages using these libraries

```

Wenn ich nun "emerge @preserved-rebuild" ausführe, wird dev-java/icedtea-bin fehlerfrei installiert, aber am Ende kommt wieder exakt die selbe Meldung.

Wie kann ich den Kreislauf durchbrechen?Last edited by 3PO on Sat Feb 06, 2016 11:40 am; edited 1 time in total

----------

## JoHo42

Hi 3PO,

vielleicht hilft das:

emerge --with-bdeps=y @preserved-rebuild

Gruss Jörg

----------

## 3PO

Hilft leider auch nicht.   :Crying or Very sad: 

----------

## JoHo42

Hi,

vielleicht noch -u --deep hinzufügen.

Vielleicht ist icetea auch in /etc/portage irgendwie vermerkt.

Das ist so das erste was mir einfällt.

Gruss Jörg

----------

## 3PO

Auch damit geht es leider nicht und "icetea" steht nirgends in "/etc/portage/*".

----------

## franzf

Zeig uns mal

```
lddtree /opt/icedtea-bin-6.1.13.9/jre/lib/amd64/libsplashscreen.so
```

Ferner ist icedtea-bin ein vorkompiliertes Programm. Wenn du dem eine benötigte Lib unterm A*** wegziehst bringt auch Neuinstallieren nichts. MMn. ist die einzige Lösung für das Problem, giflib wieder aus stable (also 4.1.x) zu installieren.

----------

## 3PO

```
vdr01_64 ~ # lddtree /opt/icedtea-bin-6.1.13.9/jre/lib/amd64/libsplashscreen.so

/opt/icedtea-bin-6.1.13.9/jre/lib/amd64/libsplashscreen.so (interpreter => None)

    libX11.so.6 => /usr/lib64/libX11.so.6

        libxcb.so.1 => /usr/lib64/libxcb.so.1

            libXau.so.6 => /usr/lib64/libXau.so.6

            libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6

        libdl.so.2 => /lib64/libdl.so.2

            ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2

    libXext.so.6 => /usr/lib64/libXext.so.6

    libm.so.6 => /lib64/libm.so.6

    libpthread.so.0 => /lib64/libpthread.so.0

    libpng16.so.16 => /usr/lib64/libpng16.so.16

    libjpeg.so.62 => /usr/lib64/libjpeg.so.62

    libgif.so.4 => /usr/lib64/libgif.so.4

    libz.so.1 => /lib64/libz.so.1

    libc.so.6 => /lib64/libc.so.6

vdr01_64 ~ #
```

----------

## franzf

 *3PO wrote:*   

> 
> 
> ```
> vdr01_64 ~ # lddtree /opt/icedtea-bin-6.1.13.9/jre/lib/amd64/libsplashscreen.so
> 
> ...

 

Er linkt direkt (und nicht indirekt) gegen die versionierte libgif.so.4. Du hast libgif.so.5. Lösung hab ich oben schon gezeigt.

----------

## 3PO

Das ist halt leider nicht ganz so einfach, da andere Pakete libgif.so.5 benötigen:

```
vdr01_64 ~ # emerge -av =media-libs/giflib-4.1.6-r3 --verbose-conflicts

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.

 * Use eselect news read to view new items.

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

Calculating dependencies... done!

[ebuild     UD ] media-libs/giflib-4.1.6-r3:0/0::gentoo [5.1.2:0/7::gentoo] USE="X%* -rle% -static-libs" 495 KiB

Total: 1 package (1 downgrade), Size of downloads: 495 KiB

!!! Multiple package instances within a single package slot have been pulled

!!! into the dependency graph, resulting in a slot conflict:

media-libs/giflib:0

  (media-libs/giflib-4.1.6-r3:0/0::gentoo, ebuild scheduled for merge) pulled in by

    =media-libs/giflib-4.1.6-r3 (Argument)

  (media-libs/giflib-5.1.2:0/7::gentoo, installed) pulled in by

    media-libs/giflib:0/7= required by (media-gfx/fbida-2.10:0/0::gentoo, installed)

                     ^^^^^

    media-libs/giflib:0/7= required by (media-gfx/fontforge-20150612-r1:0/0::gentoo, installed)

                     ^^^^^

    media-libs/giflib:0/7= required by (media-libs/libwebp-0.4.2:0/5::gentoo, installed)

                     ^^^^^

It may be possible to solve this problem by using package.mask to

prevent one of those packages from being selected. However, it is also

possible that conflicting dependencies exist such that they are

impossible to satisfy simultaneously.  If such a conflict exists in

the dependencies of two different packages, then those packages can

not be installed simultaneously.

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

page or refer to the Gentoo Handbook.

vdr01_64 ~ #
```

----------

## franzf

Das ist keine explizite Abhängigkeit von :0/7, sondern von :0= --> das = ist ein Hinweis, dass bei Subslot-Änderng ein rebuild nötig wird (also bei ABI-Änderung). giflib-4.* erfüllt diese Abhängigkeit genauso. Musst portage nur davon überzeugen. Also giflib aus package.accept-keywords (und package.unmask, falls geschehen) rausnehmen. Falls portage dann noch immer nicht will einfach emerge --oneshot --nodeps giflib.

Alternativ kannst du natürlich auch icedtea-bin deinstallieren und stattdessen icedtea (ohne bin) nehmen - und das ganze Java-Zeugs selber kompilieren  :Wink: 

----------

## 3PO

So, Problem gelöst. 

Ein, 

```
emerge -C dev-java/icedtea-bin && emerge dev-java/icedtea-bin
```

brachte die Lösung.

Dabei wude icetea 6.x und 7.x deinstalliert und icetea 7.2.6.4 installiert und jetzt ist Ruhe.

THX @ franzf & JoHo42

----------

