preserved libs
Aug 20 2008Те пользователи Gentoo, которые не брезгуют пользоваться нестабильной веткой пакетов (вроде ~x86), после не таких уж давних обновлений на portage-2.2 могли начать иногда замечать следующие сообщения:
!!! existing preserved libs:
>>> package: media-libs/libdvdread-9999
* – /usr/lib/libdvdread.so.3
* – /usr/lib/libdvdread.so.3.2.1
Use emerge @preserved-rebuild to rebuild packages using these libraries
Страшного в них ничего нету, сейчас я расскажу, что это значит. Я ведь тоже люблю bleeding edge, чего греха таить.
Так вот, preserved libs – файлы, которые должны были быть удалены системой portage из системы, как принадлежащие старой версии пакета. Например: у меня стот (точнее, стоял) libdvdread-9999. Оставим незамаскированность версии пакета на совести хозяев оверлея berkano. При обновлении с обычной версии у libdvdread сменилось api, что автоматически заставляет разработчиков изменить одну из последних цифр в названии файла библиотеки. В обычной версии был libdvdread.so.3, а в svn версии стал libdvdread.so.4. Программы, использовавшие старую версию api по идее должны были лишиться своей опоры, ибо libdvdread.so.3 должен быть удалён из системы как устаревший. Но не тут-то было, ведь новая фича portage именно тем и занята, что выискивает подобного рода проблемы и оставляет старые версии библиотек наравне с новыми.
Portage также создаст набор программ, зависящих от старой библиотеки и предложит пересобрать их. Очень может быть, что линковка получится и с новой версией. Для этого есть команда
emerge @preserved-rebuild
Согласитесь, не самая бесполезная фича ;) После соблюдения всех зависимостей старая версия библиотеки будет удалена из системы. Проблема типа поломки системы из-за обновление expat (более-менее старые пользователи должны помнить) решена, шикарно!
У меня не вышло пересобрать k3b, посему я просто замаскировал libdvdread:
echo '=media-libs/libdvdread-9999' >> /etc/portage/package.mask
{ Tags: berkano, emerge, expat, gentoo, k3b, libdvdread, masking, overlays, portage, preserved libs, upgrade }




Recent Comments