jump to navigation

Neues in Portage 2.2: preserved libs August 24, 2008

Posted by Tobias Scherbaum in : Me, Myself and I, Sysadmin , trackback

Auch heute wieder Neues aus Portage 2.2 :) Erinnert Ihr Euch noch an das expat-”fuckup” aus dem vergangenen Jahr (respektive Installationen ausgehend von 2007.0(-r1) Installationsmedien)?

Die Version 2 von expat beinhaltete einen sog. “soname change” der libexpat-Library von libexpat.so.0 zu libexpat.so.1. Nach Aktualisierung des Pakets wurde die “alte” libexpat.so.0 gelöscht, zumeist waren aber noch zahlreiche Programme gegen diese Bibliothek gelinkt - das heißt entweder man installierte diese Programme möglichst schnell neu um diese gegen libexpat.so.1 zu linken (revdep-rebuild -X)oder man wusste spätestens nach dem nächsten Reboot wozu man dies hätte machen sollen ;)

Damit ist ab Portage 2.2 nun endlich Schluss - sind nun noch Programme nach Aktualisierung von z.B. expat gegen die “alte” libexpat.so.0 gelinkt, so behält der Paketmanager diese Library installiert - so lange bis keinerlei Programm mehr diese Library benötigt. Ein sofortiges revdep-rebuild ist somit nicht mehr nötig und auch nach einem Reboot des Systems funktioniert erst einmal alles weiter wie gehabt.

Und so schaut es aus:

[...]
!!! existing preserved libs:
>>> package: net-misc/neon-0.28.2
* - /usr/lib64/libneon.so.26
* - /usr/lib64/libneon.so.26.0.4
Use emerge @preserved-rebuild to rebuild packages using these libraries

Hier wurde die Neon-Library aktualisiert, auch hier ein “soname change” - zuvor libneon.so.26.0.4 (libneon.so.26 ist nur ein Link, das unterschlagen wir einfach mal) und nun libneon.so.27.1.2. Nach Aktualisierung der Library macht Portage darauf aufmerksam, dass die libneon.so.26.0.4 Library noch in Verwendung ist und noch nicht gelöscht wurde.

Das Set @preserved-rebuild beinhaltet nun alle Pakete, die noch Libraries benötigen, die von der Löschung zurück gehalten wurden.

root@homer # emerge @preserved-rebuild -pv

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

Calculating dependencies… done!
[ebuild R ] media-plugins/audacious-plugins-1.4.5 USE=”aac alsa dbus gnome mp3 nls sse2 vorbis -adplug -arts -chardet -esd -flac -jack -lirc -modplug -mtp -musepack -oss -pulseaudio -sdl -sid -sndfile -timidity -tta -wavpack -wma” 3,103 kB

Total: 1 package (1 reinstall), Size of downloads: 3,103 kB

In diesem Beispiel benötigen lediglich die Audacious Plugins die “alte” libneon, re-Installation des Pakets und fertig - nun kann auch die alte, “aufgehobene” libneon Library fachgerecht entsorgt werden.

Comments»

no comments yet - be the first?