[devel] /etc/ld.so.cache

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Сен 19 11:02:56 MSD 2008


On Mon, Sep 15, 2008 at 02:05:27PM +0400, Dmitry V. Levin 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
> 
> Могут возникнуть (раньше были) дополнительные каталоги,
> возможно стоит запустить /usr/lib/rpm/dump_ld_config.

dump_ld_config не документирован, а из исходников не совсем очевидно,
какой у него synopsis и что он должен выводить.

В любом случае, идея понятна: лучше исходить не из фиксированного набора
каталогов, которые перечисляются в шаблонах, а из списка каталогов в
общем виде.

while read -r f; do
	case "$f" in
		/etc/ld.so.conf.d/*.conf)
			exec /sbin/ldconfig
			;;
	esac
	case "${f##*/} in
		lib*.so*) ;;
		*) continue ;;
	esac
	found=
	for dir in $dirs; do
		case "$f" in
			# XXX /usr/lib64/sse2
			"$dir"/*/*) continue ;;
			"$dir"/*) found=1; break ;;
			*) continue ;;
		esac
	done
	[ -n "$found" ] || continue
	case "${f##*/} in
		lib*.so)
			if set "$f".* && [ -f "$1" ]; then
				continue
			fi
			;;
	esac
	exec /sbin/ldconfig
done
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20080919/5c180794/attachment-0002.bin>


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