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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     08 Feb 2004  01:26:00
 To : Alexei Takaseev
 Subject : Re: RH Enterprise Linux - какие  плюсы?
 -------------------------------------------------------------------------------- 
 
 
 >>> Alexei Takaseev wrote:
 
 AK>> % ldd `which rpm`
 AK>>         not a dynamic executable
 AT> [taf@metamorph taf]$ ldd `which rpm`
 AT>         librpm-4.0.4.so => /usr/lib/librpm-4.0.4.so (0x0012d000)
 AT>         librpmbuild-4.0.4.so => /usr/lib/librpmbuild-4.0.4.so (0x00179000)
 AT>         libc.so.6 => /lib/i686/libc.so.6 (0x001ac000)
 AT>         librpmdb-4.0.4.so => /usr/lib/librpmdb-4.0.4.so (0x002cb000)
 AT>         librpmio-4.0.4.so => /usr/lib/librpmio-4.0.4.so (0x002e1000)
 AT>         libpopt.so.0 =>   /lib/libpopt.so.0 (0x00308000)
 AT>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
 AT>         libdb-4.0.so => /lib/libdb-4.0.so (0x0030f000)
 AT>         libbeecrypt.so.2 => /usr/lib/libbeecrypt.so.2 (0x003b3000)
 AT>         libbz2.so.1 => /lib/libbz2.so.1 (0x003cd000)
 AT>         libz.so.1 => /lib/libz.so.1 (0x003de000)
 AT>         libpthread.so.0 => /lib/i686/libpthread.so.0 (0x003ed000)
 AT>         librt.so.1 => /lib/i686/librt.so.1 (0x00401000)
 AT> taf@metamorph taf]$
 AT> Hикакой статики. И это со времен IPLabs Mandrake 7.0 RE (Spring 2001),
 AT> Hыне это ALT Linux Sisyphus от 4 февраля 2004 года. Так что при
 AT> правильном подходе, даже замена базовых элементов системы не приводит к
 AT> краху системы.
 
 Это, однако, вопрос прохода между Сциллой и Харибдой (вдруг кто
 не знает - скалы такие в Греции вокруг легендарного узкого пролива):
 рано или поздно кто-то обязательно нарвётся или на Сциллу (расхождение
 между интерфейсами основной glibc и подключаемых к ней модулей,
 например, NSS (несколько раз было) или iconv), или на Харибду
 (смена интерфейса или реализации самой libc или другой библиотеки
 настолько, что для работы с новой версией требуется как минимум
 перекомпиляция). В истории происходило и то, и то, хотя Сцилла -
 конфликт glibc и libnss_* - всё-таки немного чаще, потому что за
 её совместимостью следят меньше (и это то, почему крайне не
 рекомендуется её линковать статиком). Hо так или иначе на камни рано
 или поздно налетаешь, и тогда спасение может прийти только извне (другой
 веник, инсталляционный CD...)
 
 В приведённом примере, кстати, список библиотек просто-таки шокирует.
 Собственно, rpmbuild вообще можно было вынести далеко-далеко - ради
 сборки сделать один лишний exec не страшно. А всё остальное, кроме libc,
 можно было вполне привинтить статиком, и хуже от этого не было бы
 для 99% случаев (ну пока не влетели бы в очередную Харибду с, например,
 дырой в libz...)
 
 Как всегда, это не лечено просто от недостатка желания сделать культурно,
 а не через одно место. В случае смены базовых библиотек, например, спокойно
 сработал бы такой метод (навскидку, но тем не менее путь рабочий):
 1. Ядро (ну, imgact_elf, или кто там этим занимается) проверяет бинарник
 (например, по его md5) и заглядывает в хэш-таблицу, в которой задаётся
 дополнительный признак, выставляемый в окружении процесса, и может выбирать
 по результатам заглядывания в таблицу runtime loader (а не фиксированный
 /lib/ld-linux.so) и формировать данные для него (например, складывать в то
 же окружение, или придумать отдельный склад).
 2. Runtime loader - смотрит в эти данные и выбирает, например,
 другой ld.so.cache (а ещё может, как во FreeBSD5, использовать
 libmap config для замены произвольной библиотеки на произвольную).
 Тогда, сложив во временные каталоги библиотеки старого дистрибутива
 и написав простой список замены, можно спокойно менять библиотеки
 и бинарники на ходу не боясь конфликта.
 
 Повторюсь - это только один из вариантов. Hо ведь не сделано ни одного...
 -netch-
 --- ifmail v.2.15dev5.3
  * Origin: Dark side of coredump (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: RH Enterprise Linux - какие плюсы?   Alexei Takaseev   08 Feb 2004 01:30:22 
 Re: RH Enterprise Linux - какие плюсы?   Sergey Bolshakov   07 Feb 2004 21:15:09 
 Re: RH Enterprise Linux - какие плюсы?   Valentin Nechayev   08 Feb 2004 01:26:00 
 Re: RH Enterprise Linux - какие плюсы?   Alex Korchmar   08 Feb 2004 03:50:09 
Архивное /ru.linux/7368db958f0b.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional