Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Как устанавливать новые пакеты на старое ядро?

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Ykidia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
 
Ситуация такая: есть некий главный сервер (одна штука), затем есть офисные сервера (около 20 штук), находящиеся по офисам, раскиданным по всему городу и нескольким пригородам; и наконец есть клиенты (от 2 до 5 на офисный сервер). Все хозяйство - на Red Hat Enterprise Linux.
Главный сервер осведомлен обо всех офисных серверах, но понятия не имеет об их клиентах. И наоборот - клиенты, естественно, активно общаются со своими офисными серверами, но о главном сервере знать не знают, более того - для них даже Интернета нет.
Нужно соорудить синхронизацию времени для всех следующим образом: главный сервер получает время из Интернета, офисные - от главного, а клиенты - от своих офисных.
Главный сервер - ядро 2.6.9-89, на нем уже работает ntpd версии 4.2. В ntp.conf в качестве серверов указаны какие-то из инета (типа time.nist.gov), затем прописано
Код:
restrict default ignore
, а далее - список офисных серверов, которым дозволено получать время, примерно так:

Код:
restrict ofsrv1
restrict ofsrv2
...
restrict ofsrv26

Тут все работает, т.к. в версии ntpd 4.2 ключевое слово restrict наконец-то научили понимать имена машин, а не только голые ip-адреса.
Однако на всех остальных машинах версия ядра 2.4, что позволяет поднять ntpd только меньшей версии, что меня совсем не устраивает, т.к. там restrict понимает только ip-адреса! Баба Яга против!!!
И вот задумал я обновить ntpd до той же версии, что и на главном сервере. Но! Те или иные пакеты требуют от меня glibc >= 2.2, а в системе установлена лишь 2.1.3. Несколько месяцев назад я уже имел печальный опыт попыток обновить glibc+binutils+что-то еще: обновляться-то обновлялось, даже без ошибок, только после обновления практически любое действие вызывало segmentation fault.
Да и сейчас немного другая ситуация - системы постоянно работающие (24/7/365), так что обновление ядра, пожалуйста, не предлагайте.
В итоге получается, надо как-то подружить разные версии glibc (2.1.3, 2.2, 2.3, ...) и возможно других библиотек и заставить их полезно для меня и ntpd версии 4.2 существовать одновременно в одной системе.
 
Конечно, я уже потратил не одну ночь на попытки понять советы знающих людей, чтобы освоить для себя ясную методику: как установливать современное ПО на старое ядро? По существу так ничего и не понял, а лишь пока сильно разозлен тем, что узнал.
Однако я пишу сюда в надежде, что кто-нибудь и в самом деле знающий разъяснит мне на пальцах, что и как. И что мне делать в конкретном случае с (x)ntpd 4.2? Кстати, муть с LD_LIBRARY_PATH воспринимаю пока что как костыли, поэтому жажду более прозрачного решения.
 
P.S. В Windows может не все так здорово, как хотелось бы, зато нет такой головной боли. Захотел - статически подцепил все библиотеки в исполяемый модуль на этапе линковки, и все! - система никогда и никому не напишет, что не найдены какие-то dll для запуска программы, а если и напишет - это будет говорить лишь о том, что в самой ОС серьезные проблемы.
Ну почему нельзя также хотя бы иногда делать и для Linux? Что за болезнь такая с этими "общими" библиотеками?

Всего записей: 242 | Зарегистр. 03-03-2005 | Отправлено: 08:04 15-08-2011 | Исправлено: Ykidia, 08:12 15-08-2011
Ykidia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все-таки решил попробовать с ядром поновее - но не обновлять его, а поставить рядом (2.4.21-32). Думаю, разок можно перезапуститься примерно в 5 утра, обычно в это время активность минимальна. Так даже и устанавливаться рядом не хочет, требует от меня обновить то да се... И в итоге опять все упирается в glibc-2.2.3 на текущем ядре - если обновлять, то зависимостей заметно больше, чем просто ставить рядом; при этом зависимости полностью не исчезают.
Пытаюсь сделать:

Код:
rpm -ihv kernel-2.4.21-32.0.1.EL.i686.rpm

и получаю:

Код:
ошибка: неудовлетворенные зависимости:
        initscripts >= 5.83 нужен для kernel-2.4.21-32.0.1.EL
        mkinitrd >= 3.2.6 нужен для kernel-2.4.21-32.0.1.EL
        mount < 2.10r-5 конфликтует с kernel-2.4.21-32.0.1.EL
        e2fsprogs < 1.22 конфликтует с kernel-2.4.21-32.0.1.EL
        initscripts < 6.41 конфликтует с kernel-2.4.21-32.0.1.EL
        SysVinit < 2.84-13 конфликтует с kernel-2.4.21-32.0.1.EL
        pam < 0.75-48 конфликтует с kernel-2.4.21-32.0.1.EL
        vixie-cron < 3.0.1-73 конфликтует с kernel-2.4.21-32.0.1.EL

Большинство из этих "неудовлетворенных зависимостей" хотят glibc-2.2.3, что, конечно, новое ядро может обеспечить, а старое - нет, т.е. я теряю возможность загрузиться в нынешнее ядро при возникновении ошибок с тем, что поновее.
Возможно ли и в самом деле поставить glibc-2.2.3 рядом с glibc 2.1.3 - так, чтобы старье работало? Либо может есть другие идеи?

Всего записей: 242 | Зарегистр. 03-03-2005 | Отправлено: 00:07 16-08-2011
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ykidia
1. Пользовать "backports" - новые пакеты собранные под старые зависимости, проблема в том что обновляются нерегулярно (в зависимости от того кто собирает итд итп) и их надо искать, в официальных репозиториях обычно этого нет
2. Собирать самому. Качаем сорсы и вперёд

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 09:23 16-08-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Как устанавливать новые пакеты на старое ядро?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru