[devel] /etc/ld.so.cache
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Сен 15 11:11:47 MSD 2008
On Fri, Sep 12, 2008 at 12:53:29AM +0400, Dmitry V. Levin wrote:
> > > Кстати, вот как это сделано в Мандриве (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
> >
> > Кстати, при подобном раскладе (если содержать триггер в glibc-core),
> > у пакета glibc-core появится зависимость на sh (а у sh уже есть
> > зависимость на glibc-core). Впрочем, триггер можно написать на Си...
>
> В glibc-core уже есть несколько таких скриптов на C.
> А вот если там появится зависимость на @RPMCONFIGDIR@, то будет не очень
> здорово.
Вот как я себе представляю более аккуратную реализацию.
/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 не надо).
В принципе можно запаковать такой триггер не в glibc-core, а в rpm.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20080915/f71405be/attachment-0002.bin>
Подробная информация о списке рассылки Devel