> Hello! > On Sunday 10 January 2010 14:38:46 Aleksey Cheusov wrote: >> > Указывайте при сборке -Wl,-rpath,/usr/local/lib, а то, что ставится из >> > пакетов и знать не должно, что в /usr/local/lib могут быть библиотеки. >> >> А вот у некоторых все пакеты собираются с rpath.
> Хм... интересный вопрос - а как правильно-то? На мой взгляд правильно - это привязать НАМЕРТВО каждый экзешник со всеми либами, которые ему нужны, т.е. гораздо жестче, чем -rpath и уж куда лучше, чем /etc/ld.so.conf Кажется, так сделано в HP-UX. http://docs.hp.com/en/B2355-90689/ld.1.html -lx ... If a program uses shared libraries, the dynamic loader /usr/lib/dld.sl for 32-bit or /usr/lib/pa20_64/dld.sl for 64-bit will attempt to load each library from the same directory in which it was found at link time (see the +s and +b options). Каждая либа вроде бы хранит место, где она будет лежать после инсталляции. Между делом: кто-нибудь знает, где можно раздобыть экоунт на более-менее современный HP-UX? В MacOS-X вот есть опция линкера -install_name. http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/ld.1.html Описана более ясно, чем в хпуксе. -install_name name Sets an internal "install path" (LC_ID_DYLIB) in a dynamic library. Any clients linked against the library will record that path as the way dyld should locate this library. If this option is not specified, then the -o path will be used. This option is also called -dylib_install_name for compatibility. Очень правильно сделано. > По логике, в дебиане вообще не > должно быть /usr/local, так как это противоречит всему принципу пакетного > менеджмента Нет. Никто не мешает с помощью пакетного мэнеджера поставить пакеты в /usr/local. "Поставил админ только для этого хоста" не значит "поставил руками". Читай hier(7). -- Best regards, Aleksey Cheusov. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

