On Fri, Sep 12, 2008 at 12:38:23AM +0400, Alexey Tourbin wrote: [...] > > OK, есть ещё какие-нибудь основания запускать ldconfig таким образом, > > как это делается в пакетах сейчас? > > В перспективе (но, наверное, не самой ближайшей) стоит отказаться > от вызова ldconfig в пакетах и сделать posttrans trigger. Почему не ближайшей? Когда будет готов этот триггер, можно будет начинать убирать ldconfig'и. > Кстати, > там уже можно вызывать ldconfig и без опции -X, потому что при окончании > транзакции проблемы даунгрейда библиотек не существует (старые файлы > полностью удалены). Так что даже можно обслужить и левые пакеты. Да, пожалуй. > Кстати, вот как это сделано в Мандриве (glibc-2.8-1.20080520.5mnb2.src.rpm), > glibc.spec: > 1015 # automatic ldconfig cache update on rpm installs/removals > 1016 # (see http://wiki.mandriva.com/en/Rpm_filetriggers) > 1017 install -d %buildroot%{_var}/lib/rpm/filetriggers > 1018 cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.filter << EOF > 1019 ^.((/lib|/usr/lib)(64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf) > 1020 EOF > 1021 cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script << EOF > 1022 #!/bin/sh > 1023 ldconfig -X > 1024 EOF > 1025 chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script > > Кривовато, конечно (как и многое в Мандриве), можно сделать чуть лучше. > В идеале, конечно, нужен триггер не по файлам, а по provides. > > Кстати, вот чем мне не понравился именно такой подход к реализации. > С одной стороны, они вделывают regcomp() в librpm, по-видимому, чтобы > избежать лишних зависимостей на уровне exec (внутренний glob+grep сидит > в librpm). C другой стороны, им не удаётся отказаться от /bin/sh даже > для ldconfig. Они даже exec не написали, так что я думаю, что их этот /bin/sh совершенно не смущает. -- ldv