On Mon, Sep 15, 2008 at 11:11:47AM +0400, Alexey Tourbin wrote: > /usr/lib/rpm/0ldconfig.filetrigger > 1 #!/bin/sh > 2 > 3 IFS= > 4 while read -r f; do > 5 case "$f" in > 6 /lib/lib*/*.so* |\ > 7 /lib64/lib*/*.so* |\ > 8 /usr/lib/lib*/*.so* |\ > 9 /usr/lib64/lib*/*.so* ) > 10 # false positives > 11 continue ;; > 12 /lib/lib*.so |\ > 13 /lib64/lib*.so |\ > 14 /usr/lib/lib*.so |\ > 15 /usr/lib64/lib*.so ) > 16 # maybe soname > 17 if set $f.* && [ -f "$1" ]; then > 18 continue > 19 fi > 20 ;; > 21 /lib/lib*.so.* |\ > 22 /lib64/lib*.so.* |\ > 23 /usr/lib/lib*.so.* |\ > 24 /usr/lib64/lib*.so.* ) > 25 # soname > 26 ;; > 27 /etc/ld.so.conf.d/*.conf) > 28 ;; > 29 *) continue ;; > 30 esac > 31 exec /sbin/ldconfig > 32 done > > Такой триггер должен кооркетно обрабатывать установку и удаление *-devel > пакетов с симлинками (для них запускать ldconfig не надо). Однако же ldconfig записывает в кеш в том числе и линковочные симлинки, название которых не совпадает с soname'ом. $ ldconfig -p |fgrep libz. libz.so.1 (libc6,x86-64) => /lib64/libz.so.1 libz.so.1 (libc6) => /lib/libz.so.1 libz.so (libc6,x86-64) => /usr/lib64/libz.so $ ldconfig -p |fgrep libglib-2 libglib-2.0.so.0 (libc6,x86-64) => /lib64/libglib-2.0.so.0 libglib-2.0.so (libc6,x86-64) => /usr/lib64/libglib-2.0.so $