Показать сообщение отдельно
  #3  
Старый 20.03.2019, 17:02
Maxim Gribanov
Guest
 
Сообщений: n/a
По умолчанию LBRARY_PATН ATН & init.d $ glibc

Maxim Gribanov написал(а) к Eugene Lamskoy в Mar 19 15:18:02 по местному времени:

Привет, Eugene!

20 мар 19 13:26, Eugene Lamskoy -> Maxim Gribanov:


EL> Нello Maxim!

EL> 19 мар 19 10:34, you wrote to all:

MG>> Друзья, подскажите как сделать: Мне нужно запустить прогу, она
MG>> адекватно работает под glibc 2.10 не старше, пересобирать не
MG>> предлагать. Закрытое ПО. Запускаю так:
MG>> LDLIBRARYPATН=/opt/xxx/glibc(путь к libc2.10)
MG>> /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге) - Все
MG>> работает.

MG>> Но как мне прописать сий сценарий в init.d скрипте?

MG>> LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARYPATН"
MG>> LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARY
MG>> PATН" export LDLIBRARYPATН

MG>> Не помогает... ((

EL> Попробуй LDPRELOAD вместо LD_LIBRARYPATН

EL> LD_PRELOAD=/opt/some/lib.so /some/bin

Была бы какая то друга либо вопросов бы не было, но это glibc

Здесь сначала устанавливается переменная окружения LDLIBRARYPATН=/opt/xxx/glibc-2.10.1, которая говорит, что библиотеки должны искаться в папке /opt/xxx/glibc-2.10.1. Затем запускается динамический загрузчик ld-linux.so.2(из этой же версии glibc) , который загружает программу вместе с необходимыми ей библиотеками.

LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc/ld-linux.so.2 /opt/xxx/(путь к проге) Запукает нормально.
Также работает вариант /opt/xxx/glibc-2.10.1/ld-linux.so.2 --library-path /opt/xxx/glibc-2.10.1 /opt/xxx/путь к проге, в этом варианте вызывается динамический загрузчик ld-linux.so.2 (из glibc2.10.1) и ему укахывается путь к либам (glibc2.10.1)

По сути одно и тоже. Примера для делаю скрипт с содержимым:

#! /bin/bash
LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx

Запускаю все работает как надо, но в идеале хотелось бы написать полноценный init.d скрипт с возможностью запуска, остановки и пр.

Если же делаю такой скрипт: (запускаю прогу отдельной строкой)
#! /bin/bash
LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2
/opt/xxx/bin/xxx

Терплю фиаско. Как мне поступть?

С наилучшими пожеланиями, Maxim.

--- -Пиши, старик, пиши! Мы тебя не покинем.
Ответить с цитированием