Об rpm дистрибутивах с любовью

Предыстория: Есть у нас замечательные тонкие клиенты. Называются SunRay. Всем они хороши: серебристые (хотя есть и более старые – фирменных сиреневых тонов), с мониторчиками на IPS матрицах и все такое. Одна беда, им еще нужен серверный компонент: SunRay server. О нем и пойдет речь.

В самом начале горячо любимая фирма SUN написала его, естественно, под ОС Solaris. И он у нас даже стоял и работал. Но так как в качестве сервера приложений выступала линуксовая машина, то все пользователи вместо того, чтобы логиниться в предоставляемый санрей-сервером DM, тыркали пункт “подключиться к другому серверу” и выбирали соответственно линуксовый сервер. В итоге на протяжении всей сессии трафик гонялся от линуксового сервера до солярки с запущенным санрей-сервером и от санрей-сервера до самого санрея.

Ога! – сказали хитрые админы. – Нафига лишний узел?! Дорогая (во всех смыслах) фирма SUN выпустила SunRay Server for Linux. Давайте прямо на сервер приложений и поставим санрей-сервер.

Но тут есть один нюанс: санрей-сервер в качестве рекомендованной/требуемой платформы хотел RHEL или SLES уж не помню какой версии. А хитрые админы использовали Debian. Но на каждую жопу… и далее по тексту. Короче, не они первые, саксесс-стори в инете расписаны, даже патчи какие-то были. В общем оно как-то заработало. Проблема в том, что заработало именно как-то: ребята из САНа под маркой СанРейСервер (СРС) поставляли такую жуткую мешанину джавайского кода и шелл-скриптов… И главное как это все работало. Например, при подключении нового пользователя, для запуска X-сервера СРС, не стесняясь, генерировал кучу конфигов, что-то запускал, потом эти конфиги переписывал. При чем делал это в системном /etc, а не в какой-нить своей песочнице. Короче все это пришлось править так чтобы оно не сильно мешало основной системе. Получилась большая дура с кучей костылей. Она работала, но было страшно. Так как если что-то сломается, то повторить эту героическую эпопею в короткий срок даже при большом желании будет невозможно. Но нашими молитвами оно работало и не ломалось. Разве что кой-какие глюки вылезли, сеансы там временами терялись. Ну еще раз в пару месяцев СРС становилось настолько плохо, что его надо было перезапускать.

Ну а теперь начинается сама история:

Появились тут у нас система хранения данных и несколько мощных серверов. И родилась как-то идея, что надо всю инфраструктуру на это железо перетаскивать. В том числе и СанРей Сервер. Но так как страх, что если оно упадет, то наступит армагездец, был в нас все еще жив, то мы решили поставить его в выделенную виртуальную машину. И пусть он там в замороженном окружении работает, мы его вообще трогать не будем. А даже если он сам по себе деградирует и перестанет работать – восстановим эту машину целиком из бэкапа и будет счастье.

Какой дистрибутив ставить в эту ВМ? В Дебиане СРС работал как-то не стабильно. Ну так создадим ему тепличные условия. Что он там хочет? RHEL 4? Поставим CentOS, нам не сложно… так мы думали…

Оказалось, что для rpm-based дистрибутивов не существует аналога debootstrap. Точнее rpmstrap существует. Но он а)неработает (не ставит centos4), б)убог и ублюдочен by-design. Почти день на него убил. В итоге пришлось ставиться руками, спасибо хоть на оффсайте было собранное под xen ядро и initrd образ устанавливающий систему по сети.

Далее, началось самое забавное. Никита, по официальному инсталл-гайду на пару сотен страниц в течении 4х часов ставил этот долбанный SRS. Грабли были буквально через шаг, но в итоге мы уткнулись в реальную проблему. Что вы думаете? Во-первых, эти гаврики из САНа банально не прописали зависимости, так что нам пришлось делать ldd на все бинарники и удовлетворять зависимости вручную. Но самое смешное, что они собрали этот свой СРС относительно более новых библиотек. Чем те, которые идут в рекомендуемом ими RHEL4. Попробовав разрешить зависимости сторонними пакетами (да здравствует rpmseek), мы поняли, что нарвались на цепную реакцию, разрешать которую будем еще час, и самое пугающее, что фиг его знает, заработает ли оно после всего этого. Как минимум это будет явно не та тепличная среда, о которой мы мечтали. И тут, по запросу “sunray server linux” в гугле я вижу чуть ли не первую ссылку с хауту на один(!) экран по установке нужной нам версии SRS на Debian Sid.

Естественно не без небольших граблей, но за час СРС был поставлен.

Какая из всего этого мораль? Я вынес несколько: во-первых, разбиение на пакеты в RHEL отвратительное: например библиотеки, которые могут требоваться какому-нить другому приложению, и гтк-шные утилиты там вполне могут идти одним пакетом. Во-вторых: RHEL – кашеобразный дистрибутив. То есть там конечно есть правила, но до уровня Debian Policy им расти и расти. В-третьих, САНтехники все-таки уроды. Хотя это я знал еще до этого, предыдущего знакомства с СРС хватило. И наконец: все-таки Дебиан – лучший дистрибутив. Хотя бы по тому, что именно его я знаю.

3 Replies to “Об rpm дистрибутивах с любовью”

  1. Напомнило solaris+informix на бывшей работе. Сервак, который рандомно переставал оперделять сказёвый рэйд массив и соотв. грузится, при этом там была основная БД. А solaris+informix приблизительно то же, что и вышеописанное – “трогать боялись, но как-то оно работало”.
    По теме – где не встречу RHEL до 4.5 – ужас, особенно старые совсем а-ля RHEL3 = OMFG! Про пакеты полностью согласен, до dpkg и м далеко + к каждой софтине надо искать свой репозитарий, в котором пакеты собраны на колене кем-то дома.

  2. Ребят, а как я за неполный рабочий день с темя перекурами и одним перепоем по завершении умудрился скачать и запустить собсна сам rhel 4 as u3 (именно упдейт3 рекомедован, а не упдейт4), собсна сам срсс 4 и ещё кучу всякой лабуды, запустить всё это и чтоб оно работало?

    Вобщем, гайды действительно написаны неумно, но сапорт (бесплатный) консультирует толково. Единственная проблема с которой я столкнулся – русская клава. Но у меня клиенты SunRay1 и неоригинальные клавы. В некотором роде воз и ныне там с русским. Вторая трабла – киоск мод, а в остальном, достаточно просто конфигурируемая бодяга. Зная сан я не был удивлён что в админ гайде по срсс под линукс нет ни слова о том что сессии для киоска надо создавать руками, ведь есть же другой документ в котором всё это есть…. вобщем, подымаешь сантехническое решение – скачай все пакеты под все системы (те же конфы и кеймапы я выдирал из солярного пакета) и все мануалы под все системы. Ну а читать 15 документов одновременно подиагонали выуживая суть – это неудобно, не спорю.. но это сан.

Leave a Reply

Your email address will not be published. Required fields are marked *