On Tue, Nov 13, 2012 at 09:34:34PM +0200, Led wrote: > On Tuesday 13 November 2012 21:05:18 Dmitry V. Levin wrote: > > On Tue, Nov 13, 2012 at 08:20:23PM +0200, Led wrote: > > > On Tuesday 13 November 2012 20:06:45 Ivan A. Melnikov wrote: > > > > Сегодня обновлял систему до свежего Сизифа, впервые за несколько дней, > > > > 204 пакета. Поймал вот такую ошибку: > > > > > > > > 97: libgtk+3 > > > > ####################################################################### > > > >#### ######################## [ 45%] /usr/bin/gtk-query-immodules-3.0: > > > > error while loading shared libraries: libicule.so.48: cannot open > > > > shared object file: No such file or directory error: execution of %post > > > > scriptlet from libgtk+3-3.6.2-alt1 failed, exit status 127 > > > > > > > > И в конце транзакции соответственно: > > > > > > > > E: Some errors occurred while running transaction > > > > [root@deimos ~]# > > > > > > > > Теперь у меня в системе две libgtk+3. > > > > > > > > Это точно баг. Но в каком пакете? > > > > > > Это похоже на следствие отказа от ldconfig в %post пакета. > > > > Каким образом отказ от ldconfig в %post мог бы сломать установку > > правильно собранных пакетов? > > Мне кажется, что выполнение в %post утилиты, слинкованной с вновь > установленной библиотекой (но с ещё неотработавшим ldconfig) может быть > неоднозначным. По крайней мере, когда-то синтетические тесты мне показывали > такие "неоднозначности". Все эти неоднозначности можно однозначно предсказать, поскольку поведение rtld известно, и отличается оно существенным образом до и после ldconfig в следующих ситуациях: - выполнение ldconfig приводит к появлению/изменению ссылок, не упакованных или упакованных с другими значениями (т.е. ошибка упаковки). - выполнение ldconfig приводит к появлению в /etc/ld.so.cache библиотек, которые rtld сам по себе не находит либо находит в других местах (т.е. добавление/удаление/изменение файлов /etc/ld.so.conf.d/*.conf). -- ldv