# Frage zu "preserved-rebuild"

## 3PO

Hallo Zusammen,

wie löst man denn so etwas?

```
server01 ~ # emerge @preserved-rebuild

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "dev-lang/php:5.3".

(dependency required by "@preserved-rebuild" [argument])

server01 ~ #

```

----------

## toralf

Mach doch mal ein sync, 5.3 gibt's im portage tree nicht mehr :

```
tfoerste@t44 ~ $ eix dev-lang/php

[I] dev-lang/php

     Available versions:

     (5.4)  5.4.44 5.4.45

     (5.5)  5.5.28 5.5.29

     (5.6)  5.6.12 5.6.13

     (7.0)  [M]~7.0.0_beta1 [M]~7.0.0_rc1 [M]~7.0.0_rc2 [M]~7.0.0_rc3

```

----------

## 3PO

Ein sync ändert leider nichts:  :Sad: 

```
server01 ~ # emerge @preserved-rebuild

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "dev-lang/php:5.3".

(dependency required by "@preserved-rebuild" [argument])

server01 ~ #

```

----------

## Josef.95

Hilfreich wäre die vorherige emerge Ausgabe, in der berichtet wurde das Libs vorgehalten wurden.  In der Ausgabe sollte ersichtlich sein welche Libs warum vorgehalten werden, und welche Pakete diese benötigen.

Vermutlich ist dev-lang/php:5.3 noch installiert?

Schau ob sich der Slot problemlos deinstallieren ließe: 

```
emerge -avc dev-lang/php:5.3
```

----------

## 3PO

Das wars!

DANKE!!  :Smile: 

----------

## 3PO

Jetzt habe ich aber ein anderes, seltsames Problem:

Nach dem "emergen" bekomme ich folgende Meldung:

```
!!! existing preserved libs:

>>> package: dev-db/mysql-5.6.26

 *  - /usr/lib64/libmysqlclient.so.18

 *  - /usr/lib64/libmysqlclient.so.18.1.0

 *      used by /usr/bin/epgd (media-tv/epgd-9999)

 *      used by /usr/bin/epghttpd (media-tv/epgd-9999)

 *      used by /usr/bin/mediatomb (net-misc/mediatomb-0.12.1-r8)

 *      used by 23 other files

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

So weit, so gut.

Wenn ich nun "emerge @preserved-rebuild" ausführe, werden 15 Pakete neu gebaut und am Ende kommt wieder exakt die selbe Meldung.

Führe ich "emerge @preserved-rebuild" erneut aus, werden wieder exakt die selben 15 Pakete nochmal gebaut und am Ende kommt wieder die o.g. Meldung....

Wie komme ich denn aus dieser Schleife raus?

----------

## Josef.95

 *3PO wrote:*   

> Wenn ich nun "emerge @preserved-rebuild" ausführe, werden 15 Pakete neu gebaut und am Ende kommt wieder exakt die selbe Meldung.

  Hm, ist bei diesen fünfzehn Paketen zufällig ein Binary-Paket mit bei? ( zb etwas wie oracle-jre-bin)

Falls ja, dann sollte ein temporäres unmergen des Pakets meist helfen (kannst es ja nach dem preserved-rebuild wieder neu installieren lassen).

----------

## 3PO

 *Josef.95 wrote:*   

>  Hm, ist bei diesen fünfzehn Paketen zufällig ein Binary-Paket mit bei? ( zb etwas wie oracle-jre-bin) ...

 

Nein.

```
server01 ~ # emerge -av @preserved-rebuild

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

Calculating dependencies... done!

[ebuild   R   *] media-tv/epgd-9999::local-repo  USE="-debug" 0 KiB

[ebuild   R   ~] dev-qt/qtsql-5.5.0:5/5.5::qt  USE="mysql sqlite -debug -freetds -oci8 -odbc -postgres {-test}" 0 KiB

[ebuild   R    ] net-analyzer/net-snmp-5.7.3_pre5-r1::gentoo  USE="X bzip2 ipv6 lm_sensors mysql perl python ssl tcpd zlib -doc -elf -mfd-rewrites -minimal -netlink -pci -rpm (-selinux) -ucd-compat" PYTHON_TARGETS="python2_7" 0 KiB

[ebuild   R    ] dev-perl/DBD-mysql-4.31.0::gentoo  USE="-embedded {-test}" 0 KiB

[ebuild   R    ] dev-qt/qtsql-4.8.6-r1:4::gentoo  USE="exceptions mysql qt3support sqlite (-aqua) -debug -freetds -oci8 -odbc -pch -postgres" 0 KiB

[ebuild   R    ] dev-db/libdbi-drivers-0.9.0::gentoo  USE="mysql sqlite -doc (-firebird) -oci8 -postgres -static-libs" 0 KiB

[ebuild   R    ] net-misc/mediatomb-0.12.1-r8::gentoo  USE="curl exif ffmpeg flac inotify javascript lastfm magic mp4 mysql sqlite taglib zlib -debug -id3tag -libextractor -thumbnail" 0 KiB

[ebuild   R    ] app-benchmarks/sysbench-0.4.12-r1::gentoo  USE="aio mysql" 0 KiB

[ebuild   R    ] dev-libs/cyrus-sasl-2.1.26-r9:2::gentoo  USE="berkdb gdbm java mysql pam ssl -authdaemond -kerberos -ldapdb -openldap -postgres -sample (-selinux) -sqlite -srp -static-libs -urandom" 0 KiB

[ebuild   R    ] dev-python/mysql-python-1.2.5::gentoo  USE="-doc" PYTHON_TARGETS="python2_7" 0 KiB

[ebuild   R    ] dev-libs/apr-util-1.5.4:1::gentoo  USE="berkdb gdbm mysql -doc -freetds -ldap -nss -odbc -openssl -postgres -sqlite -static-libs" 0 KiB

[ebuild   R    ] dev-libs/redland-1.0.16::gentoo  USE="berkdb mysql xml -iodbc -odbc -postgres -sqlite -static-libs" 0 KiB

[ebuild   R    ] net-analyzer/nagios-plugins-2.0.3-r2::gentoo  USE="ipv6 mysql samba snmp ssl -ldap -nagios-dns -nagios-game -nagios-ping -postgres -ssh" 0 KiB

[ebuild   R    ] net-misc/asterisk-11.17.1::gentoo  USE="alsa bluetooth calendar caps curl http iconv ilbc lua mysql newt odbc oss samples snmp srtp syslog vorbis -cluster -dahdi -debug -doc -freetds -gtalk -ldap -libedit -osplookup -portaudio -postgres -radius (-selinux) -span -speex -static -xmpp" VOICEMAIL_STORAGE="file -imap -odbc" 0 KiB

[ebuild   R   ~] www-misc/zoneminder-1.28.1::gentoo  USE="curl gnutls mmap openssl vlc -gcrypt" 0 KiB

Total: 15 packages (15 reinstalls), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]

```

----------

## franzf

Zeig mal, mit welchen USE-Flags mysql gebaut ist.

----------

## 3PO

Bitteschön:  :Smile: 

```
erver01 ~ # emerge -av mysql

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

Calculating dependencies... done!

[ebuild   R    ] dev-db/mysql-5.6.26:0/18::gentoo  USE="community embedded perl ssl (-cluster) -debug -extraengine -jemalloc -latin1 -minimal -profiling (-selinux) -static -static-libs -systemtap -tcmalloc {-test}" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]
```

----------

## bell

In solchen Fällen hilft es die preserved-Dateien /usr/lib64/libmysqlclient.so.18.1.0  und /usr/lib64/libmysqlclient.so.18 selbst zu löschen und danach das gute alte revdep-rebuild auszuführen.

Bist Du Dir sicher dass Du keine mysql-Client Bibliotheken brauchst? Bei Dir ist USE=embedded gesetzt. Damit wird nur der Server gebaut, ohne Client-Bibliotheken.

----------

## 3PO

Das Ganze wird immer mysteriöser....

Lösche ich die beiden Files, dann sieht das o aus:

```
server01 ~ # rm -v /usr/lib64/libmysqlclient.so.*

„/usr/lib64/libmysqlclient.so.18“ wurde entfernt

„/usr/lib64/libmysqlclient.so.18.1.0“ wurde entfernt

server01 ~ # emerge @preserved-rebuild -av

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

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

Nothing to merge; quitting.

server01 ~ #
```

Baue ich mysql neu, dann endet das wieder mit:

```
!!! existing preserved libs:

>>> package: dev-db/mysql-5.6.26

 *  - /usr/lib64/libmysqlclient.so.18

 *  - /usr/lib64/libmysqlclient.so.18.1.0

 *      used by /usr/bin/epgd (media-tv/epgd-9999)

 *      used by /usr/bin/epghttpd (media-tv/epgd-9999)

 *      used by /usr/bin/mediatomb (net-misc/mediatomb-0.12.1-r8)

 *      used by 15 other files

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

Entferne ich "embedded" aus "package.use", dann nörgelt mysql:

```
server01 ~ # emerge dev-db/mysql -av

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

Calculating dependencies... done!

[ebuild   R    ] dev-db/mysql-5.6.26:0/18::gentoo  USE="community embedded perl ssl (-cluster) -debug -extraengine -jemalloc -latin1 -minimal -profiling (-selinux) -static -static-libs -systemtap -tcmalloc {-test}" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

The following USE changes are necessary to proceed:

 (see "package.use" in the portage(5) man page for more details)

# required by virtual/mysql-5.6-r6::gentoo[embedded]

>=dev-db/mysql-5.6.26 embedded

Would you like to add these changes to your config files? [Yes/No] n

server01 ~ # 
```

----------

## 3PO

Problem gelöst!

Das brachte die Lösung:

```
echo "virtual/mysql -embedded" >> /etc/portage/package.use/mysql

emerge -av virtual/mysql 
```

----------

