LINUX.ORG.RU

/usr/lib или /usr/local/lib ?


0

0

Мучают сомнения...

Есть библиотеки, установленные из репозиториев, они располодены в /usr/lib. Я собирал эти же библиотеки, не удаляя репозиториевские, они располагаются в /usr/local/lib.

Собственно вопрос. Программы, которые используют эти библиотеки, которые из них будут использовать, те что расположены в /usr/lib или те что в /usr/local/lib?

Спасибо.

Ответ на: комментарий от gena2x

ldd для интересующих программ указывает на /usr/lib.

cat /etc/ld.so.conf :

include /etc/ld.so.conf.d/*.conf

cat /etc/ld.so.conf.d/* :

# Multiarch support
/lib/i486-linux-gnu
/usr/lib/i486-linux-gnu
/usr/lib/alsa-lib
# libc default configuration
/usr/local/lib

man ld.so почитал немного... :(
В крайнем случае я могу заменить библиотеки в /usr/lib на симлинки на соответствующие библиотеки в /usr/local/lib, но вопрос в том, обязательно ли, я надеюсь что используются именно библиотеки в /usr/local/lib.

firestarter ★★★☆
() автор топика

Имхо проще всего пересобрать нужные библиотеки через сорцовые пакеты.

nnz ★★★★
()
Ответ на: комментарий от nnz

Если вы говорите про пакеты исходников, что лежат в репозитории (ubuntu), то не то. Мне нужны немного другие версии (собственно, речь идёт об aotuv, а в репозитории устаревший libvorbis).

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

вот так убунта превращается в слакварь =)

anonymous
()
Ответ на: комментарий от alex_custov

Подходящей версии в репах нет. Есть пара PPA с версией aotuv 5.5. Версия 5.7 же лежит только на оффсайте в архиве(ну и бинарники для форточек).

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

используются библиотеки найденные в том порядке, в котором они перечисленны в /etc/ld.so.conf

/usr/lib
/lib
автоматом добавляется в конец списка, если не было указано вручную


исключением может быть когда приложение имеет жестко вкомпилированый rpath, тогда вначале будут грузиться библиотеки из rpath , потом уже из ld.so.conf

тут уже написали, что проверить можно с помощью ldd

Sylvia ★★★★★
()

еще ремарка по убунте (и вообще любому дистрибутиву с пакетной системой) и ручной инсталляцией, раз уж make install совсем не избежать, то ставить нужно в /usr/local , это стандартный префикс , но пакеты туда не ставятся, т.е. он специально для разведения помойки локально.

ps: *bsd это не касается
pps: гента со своей revdep-rebuild таки не игнорирует /usr/local , а настойчиво возмущается если найдет там что постороннее

Sylvia ★★★★★
()

да, ещё важный момент - ldconfig, надо делать каждый раз после установки новой либы если make install это забыл или копировал вручную.

gena2x ★★★
()

LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH /usr/local/bin/program

anonymous
()

специально для плохо воспитанного анонимуса -

/opt/<vendor>/ - префиксы для установки проприетарного ПО через разного рода инсталляторы

/usr/local - в линукс этому префиксу как раз и отведена роль локальной помойки, а удалять установленный через make install софт всегда было проблематично, особенно если make uninstall не сделать

и перед тем как хамить в след.раз , чтобы совсем не позориться, почитайте спеки на назначение различных каталогов в линукс.

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.