[devel] /etc/ld.so.cache

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Пн Сен 15 14:05:27 MSD 2008


On Mon, Sep 15, 2008 at 11:11:47AM +0400, Alexey Tourbin wrote:
> 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

Могут возникнуть (раньше были) дополнительные каталоги,
возможно стоит запустить /usr/lib/rpm/dump_ld_config.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/52cdb2a6/attachment-0002.bin>


Подробная информация о списке рассылки Devel