On Tue, Oct 26, 2010 at 05:42:02PM +0800, REAL wrote: > Dmitry V. Levin пишет: > >Эти библиотеки упакованы весьма > >нестандартным образом, и, > >соответственно, > >для их обработки требуется весьма > >нестандартный подход. Сейчас, насколько > >я понимаю, lib.prov эти файлы, упакованные в > >/usr/lib/hdf5-*/lib/libhdf5.so.6, просто игнорирует, > > А можно добиться, чтобы не игнорировал? И > что лично мне для этого нужно сделать? lib.prov обрабатывает только те файлы, которые видит ldconfig. И %add_findprov_lib_path в данном случае не поможет. Так что положите ваши разделяемые библиотеки в %_libdir/ Ну или хотя бы призрачные ссылки на библиотеки: %ghost %_libdir/lib*.so.* > >а provides вида > >libhdf5.so.6()(64bit) выставлены вручную. Ну что > >же, вы можете и > >set-versioned provides выставить вручную, конечно, > >но я бы вам этого > >не советовал делать. > > Я и сам себе не советую :-D > Хотя мысль была. > > А вообще странно, что для > библиотек-альтернатив не работает тот же > механизм lib.prov, что и для обычных > библиотек. Вроде бы логично пройтись до > реального файла на основе ссылки на > альтернативу. Механизм альтернатив не вполне применим к разделяемым библиотекам. Если две реализации одного soname отличаются по списку экспортируемых символов, то клиент этой библиотеки, будучи слинкованным с одной реализацией, может даже не запускаться с другой. Механизм альтернатив обманет не ld.so, а пользователя, у которого может оказаться нерабочий клиент с удовлетворенными зависимостями, т.е. то самое, с чем мы боремся с помощью set-versioned dependencies. Так что лучше сделать альтернативные разделяемые библиотеки конфликтующими. -- ldv