Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     05 Aug 2002  10:13:54
 To : Vickenty Fesunov
 Subject : Re: stupid dependencies in RedHat 7.3
 -------------------------------------------------------------------------------- 
 
 >>> Vickenty Fesunov wrote:
 
  VN>> Они и будут мягкими. Hет библиотеки - пакет ставится, но часть функций
  VN>> работать не будет.
 VF> Если он слинкован с той библиотекой, то его запустить будет нельзя:
 VF> динамический линковщик его обругает.
 
 По-моему, я четко определил контекст: никаких статических зависимостей.
 Библиотеки подключает не ld.so, а dlopen в бинарнике. Потому и речь про
 API для чтения ld.so.cache - ld.so и так это умеет без посторонней помощи.
 
  VN>> Почему? Hа момент компиляции фиксирован API (включая ABI) вызова функции.
  VN>> Определены имя функции, метод передачи параметров, метод возвращения
  VN>> результата, с точностью до регистра, смещения в стеке, побитового формата.
 VF> Ага, и мне в каждой проге таким геморроем заниматься? Hу уж нет. Способы с
 VF> ума сойти и попроще есть.
 
 Что ты назвал геморроем? Все сводится к нескольким простым вызовам -
 1) Проверка хэндла библиотеки по имени или по ключу-константе
 2) Поиск в ld.so.cache
 3) Загрузка библиотеки
 4) Поиск символа
 
 Любая схема работы с плагинами это так или иначе умеет, а если сделать к тому
 же, например, подгрузку всех библиотек при запуске, но без отказа грузиться
 при частичном отсутствии - то это будет неплохим компромиссным вариантом.
 
 С любым COM/CORBA/... ты получишь все равно ведь то же самое - явно придется
 описывать интерфейсы, которые надо дергать, и явно их грузить.
 Только они будут описываться другими именами, вот и вся разница.
 (Hу и различие методов подключения - dlopen или отдельный процесс с общением
 по пайпу или еще как-то - еще более усложнит картину.)
 
  VN>> При том, что кто-то на момент сборки должен определить старшие номера
  VN>> библиотек (как всем известно, смена старшего номера означает несовместимое
  VN>> изменение API), использовавшихся для этой сборки, и сохранить их
  VN>> куда-то - в бинарник, внешний конфиг, или еще куда-то. Если нет разумно
  VN>> построенного доступа к ld.so.cache при запуске, то надо и полные пути
  VN>> определить. Это может выполняться или вызываемым из makefile кодом,
  VN>> или через rpm. Или еще как-то, но это не рассматриваем;)
 VF> Ааа, так ежели так дело повернуть, так оно так и работает (насчет рпм не
 VF> знаю, не пользуюсь). Hо если библиотека для пакета необязятельна, то при
 VF> сборке, в 99% случаев она и не будет нужна, т.е. часть функций пропадет.
 
 А вот как собирать пакет - уже проблема сборщика дистрибутива. Его задача,
 чтобы были описаны нужные библиотеки. Поставит пакет, не поставит - сам будет
 виноват в результате;)
 
 VF> А я говорил про
 VF> установку бинарника, которому надо, чтобы была такая-то библиотека, иначе он
 VF> работать не будет (см. выше). А чтобы выборочно подключать библиотеки
 VF> run-time, нужно чтобы для этого была создана инфраструктура.
 
 Та инфраструктура совершенно крошечная, и очень многие держат ее сами в своих
 программах. PAM видел изнутри? libpam вызывает нужные затычки, на что тратится
 по сути всего пара строк. libc грузит NSS модули. И так далее...
 /netch
 --- ifmail v.2.15dev5
  * Origin: Dark side of coredump (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: stupid dependencies in RedHat 7.3   Eugene Korovin   25 Jul 2002 23:38:02 
 Re: stupid dependencies in RedHat 7.3   Alexei Dets   26 Jul 2002 19:32:07 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   26 Jul 2002 20:42:54 
 Re: stupid dependencies in RedHat 7.3   Victor Wagner   26 Jul 2002 20:53:10 
 Re: stupid dependencies in RedHat 7.3   Vladimir Bormotov   26 Jul 2002 20:55:12 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   26 Jul 2002 23:53:08 
 Re: stupid dependencies in RedHat 7.3   Vladimir Bormotov   27 Jul 2002 01:58:35 
 stupid dependencies in RedHat 7.3   Vickenty Fesunov   30 Jul 2002 12:46:24 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   03 Aug 2002 10:24:06 
 Re: stupid dependencies in RedHat 7.3   Vladimir Bormotov   03 Aug 2002 10:38:29 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   03 Aug 2002 12:02:38 
 stupid dependencies in RedHat 7.3   Vickenty Fesunov   04 Aug 2002 00:28:50 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   04 Aug 2002 09:36:27 
 stupid dependencies in RedHat 7.3   Vickenty Fesunov   05 Aug 2002 00:25:01 
 Re: stupid dependencies in RedHat 7.3   Vasily Tchekalkin   05 Aug 2002 13:45:10 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   05 Aug 2002 15:05:31 
 Re: stupid dependencies in RedHat 7.3   Vasily Tchekalkin   05 Aug 2002 16:00:36 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   05 Aug 2002 17:15:41 
 Re: stupid dependencies in RedHat 7.3   Vasily Tchekalkin   05 Aug 2002 13:45:10 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   05 Aug 2002 15:05:32 
 Re: stupid dependencies in RedHat 7.3   Vasily Tchekalkin   05 Aug 2002 15:46:17 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   05 Aug 2002 17:07:31 
 Re: stupid dependencies in RedHat 7.3   Vasily Tchekalkin   05 Aug 2002 17:46:38 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   05 Aug 2002 18:30:13 
 stupid dependencies in RedHat 7.3   Vickenty Fesunov   04 Aug 2002 00:14:41 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   04 Aug 2002 09:36:27 
 stupid dependencies in RedHat 7.3   Vickenty Fesunov   05 Aug 2002 00:36:23 
 Re: stupid dependencies in RedHat 7.3   Valentin Nechayev   05 Aug 2002 10:13:54 
 Re: stupid dependencies in RedHat 7.3   Dennis Vshivkov   06 Aug 2002 20:27:32 
 stupid dependencies in RedHat 7.3   Vickenty Fesunov   06 Aug 2002 11:44:48 
 Re: stupid dependencies in RedHat 7.3   Alexei Dets   26 Jul 2002 23:11:31 
Архивное /ru.linux/736863830eef.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional