Как работает ldconfig

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Как работает ldconfig

Сообщение NickLion »

Вообще с упаковкой пакетов беда, когда делают люди, которые не особо разбираются в вопросе. Нам тоже нужно использовать програмку, deb пакет, все дела. Кривой только, ldconfig наверное: постоянно слетает путь к библиотеке, приходится удалять и ставить заново после каждого обновления системы или установки пакетов. Я уж молчу, что програмка из пакета ставится в /usr/local/<prog-name>, а библиотечки для неё в /usr/local/lib64.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18650
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение Bizdelnick »

NickLion писал:
21.06.2018 11:42
Кривой только, ldconfig наверное: постоянно слетает путь к библиотеке
NickLion писал:
21.06.2018 11:42
библиотечки для неё в /usr/local/lib64
Ну вот, собственно, и причина. Такого пути по умолчанию в ld.so.conf нет (по крайней мере в Debian).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение NickLion »

Bizdelnick
Да, я понял, что где-то там, но авторы "приняли к сведению" и молчат. Не подскажете, раз уж такое дело, если прописать этот путь в /etc/ld.so.conf.d/xxx.conf насколько я могу что-то сломать? :) И где почитать подробнее про ldconfig кроме как в man'е.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18650
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение Bizdelnick »

NickLion писал:
21.06.2018 12:24
Bizdelnick
Да, я понял, что где-то там, но авторы "приняли к сведению" и молчат. Не подскажете, раз уж такое дело, если прописать этот путь в /etc/ld.so.conf.d/xxx.conf насколько я могу что-то сломать?
Если там не дублируются системные библиотеки, то ничего сломаться не должно. Если дублируются, то так делать, конечно, не стоит. Как вариант, можно сделать враппер, подставляющий LD_LIBRARY_PATH. RPATH/RUNPATH в бинаре, как я понимаю, отсутствует, так что chrpath вряд ли поможет, но проверить тоже стоит.
NickLion писал:
21.06.2018 12:24
И где почитать подробнее про ldconfig кроме как в man'е.
Мне всегда хватало мана. В доке glibc вроде ничего нет, где ещё смотреть — не знаю.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение NickLion »

Bizdelnick писал:
21.06.2018 12:36
Мне всегда хватало мана
Ну, вот как раз не хватает, не ясно как повлияет наличие дубля, как влияет очерёдность путей, как очерёдность определяется в случае include /etc/ld.so.conf.d/*.conf — в алфавитном порядке имён файлов? Или это всё undefined behaviour?
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение serzh-z »

NickLion писал:
21.06.2018 21:29
Ну, вот как раз не хватает, не ясно как повлияет наличие дубля, как влияет очерёдность путей, как очерёдность определяется в случае include /etc/ld.so.conf.d/*.conf — в алфавитном порядке имён файлов? Или это всё undefined behaviour?
- Дубли объединяются
- По сортировке см. man glob - все сортируется (в смысле - сортируются файлы конфигурации)
Спасибо сказали:

Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение Vascom »

Можно просто перепаковать пакет с правильными путями.
Спасибо сказали:

NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash

Сообщение NickLion »

serzh-z писал:
22.06.2018 02:22
По сортировке см. man glob
Ну, ожидаемо, но в man'e этого не видно, это что-то вроде implementation-defined behaviour? :)
serzh-z писал:
22.06.2018 02:22
Дубли объединяются
А вот здесь подробнее — это как? Вот есть, допустим, библиотечка lib123.so, в конфигах прописан путь сначала /usr/lib1, потом /usr/lib2, в обоих каталогах есть эта библиотечка, какая будет использована программой?
Vascom писал:
22.06.2018 07:56
Можно просто перепаковать пакет с правильными путями
Да, но париться не хочется, выйдет новая версия и повторяй…

Пока что текущее решение (с LD_LIBRARY_PATH) выглядит для меня понятнее и безопаснее.

PS что-то обсуждение ldconfig затянулось, может стоит отрезать в отдельную тему?
Спасибо сказали:

Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Как работает ldconfig

Сообщение s.xbatob »

Напоминаю, что кроме того, что конфигурирует ldconfig есть как минимум ещё два источника путей: LD_LIBRARY_PATH и атрибут rpath в самом исполняемом файле.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: Как работает ldconfig

Сообщение serzh-z »

NickLion писал:
22.06.2018 09:02
но в man'e этого не видно
Когда это останавливало? Это же опенсорс. =)
NickLion писал:
22.06.2018 09:02
А вот здесь подробнее — это как?
У каждого сканируемого каталога есть тип - libcN, x86_64 и т.д. Если, скажем, первый каталог (симлинк /food/bar -> /foo/libc/5) имеет тип libc6, а потом встречается явное указание /foo/libc/5 с типом libc5, то в кеш попадет только /foo/libc/5 с типом libc5.
NickLion писал:
22.06.2018 09:02
какая будет использована программой?
Это вопрос уже к ld-linux.so, а не к ldconfig. Как заметили выше - там ещё и rpath есть, который, вроде бы, более приоритетный.
Спасибо сказали: