Как работает ldconfig
Модератор: SLEDopit
Как работает ldconfig
Вообще с упаковкой пакетов беда, когда делают люди, которые не особо разбираются в вопросе. Нам тоже нужно использовать програмку, deb пакет, все дела. Кривой только, ldconfig наверное: постоянно слетает путь к библиотеке, приходится удалять и ставить заново после каждого обновления системы или установки пакетов. Я уж молчу, что програмка из пакета ставится в /usr/local/<prog-name>, а библиотечки для неё в /usr/local/lib64.
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Ну вот, собственно, и причина. Такого пути по умолчанию в ld.so.conf нет (по крайней мере в Debian).
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Bizdelnick
Да, я понял, что где-то там, но авторы "приняли к сведению" и молчат. Не подскажете, раз уж такое дело, если прописать этот путь в /etc/ld.so.conf.d/xxx.conf насколько я могу что-то сломать? И где почитать подробнее про ldconfig кроме как в man'е.
Да, я понял, что где-то там, но авторы "приняли к сведению" и молчат. Не подскажете, раз уж такое дело, если прописать этот путь в /etc/ld.so.conf.d/xxx.conf насколько я могу что-то сломать? И где почитать подробнее про ldconfig кроме как в man'е.
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Если там не дублируются системные библиотеки, то ничего сломаться не должно. Если дублируются, то так делать, конечно, не стоит. Как вариант, можно сделать враппер, подставляющий LD_LIBRARY_PATH. RPATH/RUNPATH в бинаре, как я понимаю, отсутствует, так что chrpath вряд ли поможет, но проверить тоже стоит.NickLion писал: ↑21.06.2018 12:24Bizdelnick
Да, я понял, что где-то там, но авторы "приняли к сведению" и молчат. Не подскажете, раз уж такое дело, если прописать этот путь в /etc/ld.so.conf.d/xxx.conf насколько я могу что-то сломать?
Мне всегда хватало мана. В доке glibc вроде ничего нет, где ещё смотреть — не знаю.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Ну, вот как раз не хватает, не ясно как повлияет наличие дубля, как влияет очерёдность путей, как очерёдность определяется в случае include /etc/ld.so.conf.d/*.conf — в алфавитном порядке имён файлов? Или это всё undefined behaviour?
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
- Дубли объединяются
- По сортировке см. man glob - все сортируется (в смысле - сортируются файлы конфигурации)
Спасибо сказали:
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Можно просто перепаковать пакет с правильными путями.
Re: [ON] Подготовленный в Microsoft deb-пакет с Open R принудительно заменяет /bin/sh на bash
Ну, ожидаемо, но в man'e этого не видно, это что-то вроде implementation-defined behaviour?
А вот здесь подробнее — это как? Вот есть, допустим, библиотечка lib123.so, в конфигах прописан путь сначала /usr/lib1, потом /usr/lib2, в обоих каталогах есть эта библиотечка, какая будет использована программой?
Да, но париться не хочется, выйдет новая версия и повторяй…
Пока что текущее решение (с LD_LIBRARY_PATH) выглядит для меня понятнее и безопаснее.
PS что-то обсуждение ldconfig затянулось, может стоит отрезать в отдельную тему?
Re: Как работает ldconfig
Напоминаю, что кроме того, что конфигурирует ldconfig есть как минимум ещё два источника путей: LD_LIBRARY_PATH и атрибут rpath в самом исполняемом файле.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как работает ldconfig
Когда это останавливало? Это же опенсорс. =)
У каждого сканируемого каталога есть тип - libcN, x86_64 и т.д. Если, скажем, первый каталог (симлинк /food/bar -> /foo/libc/5) имеет тип libc6, а потом встречается явное указание /foo/libc/5 с типом libc5, то в кеш попадет только /foo/libc/5 с типом libc5.
Это вопрос уже к ld-linux.so, а не к ldconfig. Как заметили выше - там ещё и rpath есть, который, вроде бы, более приоритетный.
Спасибо сказали: