Новелла восемьдесят четвёртая, посвящённая истории вопроса

Изобретение пакетов формата RPM и соответствующей утилиты для управления ими оказало сильное влияние на Linux-дистрибуцию. Способность rpm отслеживать зависимости и сообщать об их нарушениисыграла очень большую роль в приобщении к Linux’у широких народных масс. Поэтому для начала уместно будет обратиться к истории.

Не последнюю партию в этом приобщении  исполнил и дистрибутив (тогда ещё)  S.u.S.E. Как мы помним из исторического очерка, он зародился как клон Slackware, и использовал свойственный ей простой формат пакетов. Однако очень быстро отказался от молчаливого пакетного инструментария Slackware, перейдя на недавно изобретённый формат RPM. Так что начнём по порядку.

Происхождение системы RPM (будем понимать под этим и набор утилит, и формат пакетов, с которыми они работают) теряется во мраке веков. Отдалённым её предком была система RPP, использовавшаяся в первых версиях Red Hat. Она обеспечивала установку пакетов одной командой, запрос информации о них, а также проверку зависимостей. Однако сборка пакетов для неё требовала существенной модификации авторских исходников, и потому широкого распространения она не получила.

Параллельно раннему Red Hat некоторое время развивался дистрибутив Bogus, ныне мало кому известный. В нём имелась собственная пакетная система — PMS (Package Management System), написанная Рикардом Файтом (Rikard E. Faith). Она обладала слабым механизмом запросов информации о пакетах, а проверка их зависимостей просто отсутствовала. Но зато пакеты для PMS можно было собирать непосредственно из авторских исходников, без всякой их модификации.

В ходе подготовки 2-го релиза Red Hat Рикард Файт вместе с Дугом Хоффманом (Doug Hoffman) по контракту с компанией Red Hat написали систему PM (Package Management), вобравшую в себя лучшие особенности RPP и PMS. Хотя практически она так и не была задействована, но послужила одной из основ для RPM.

Собственно система RPM была создана Марком Юингом (одним из сооснователей компании Red Hat) и Эриком Троэном (Erik Troan), основывавшихся на всех достижениях предшественников — разработчиков RPP, PMS и PM. Вариант её, подготовленный для тестовых версий второго релиза, быстроты ради был написан на Perl’е, что создавало ряд проблем, например, при загрузке с дискеты (а в те времена это было достаточно обычным способом старта Linux’а). И непосредственно к выходу релиза Red Hat 2.0 система была полностью переписана на C, база данных пакетов перепроектирована для пущей надёжности и быстродействия, а для использования функциональности RPM сторонними разработчиками была создана библиотека rpmlib. Иными словами, система RPM приобрела практически тот вид, в каком мы знаем её ныне, подвергаясь с тех пор только корректировке ошибок и косметическим доделкам.

Система RPM (то есть формат пакетов и утилита), став штатными и общедоступными в релизе Red Hat 2.0, вышедшем в сентябре 1995 года, сразу завоевали популярность и вне родительской системы. В частности, где-то в 1996 году эта система инкорпорируется и S.u.S.E Linux, где используется и по сей день.

Как и в большинстве rpm based дистрибутивов, в  openSUSE используется rpm 4-й ветки. Текущая её версия в  релизе 12.2  — 4.9.1.2.

Правда, параллельно генеральной версии rpm развивается и её обновлённый вариант, известный как rpm5. Он создан Джеффом Джонсоном (Jeff Johnson), бывшим до того одним из основных разработчиков “обычного” rpm.  Согласно его мнению, новая версия существенно усовершенствована по  сравнению со своим предком, за что, однако пришлось заплатить  отсутствием совместимости между этими двумя форматами. Поэтому <code>rpm5</code> официально не поддерживается ни проектом rpm.org,  ни одним из распространённых rpm based дистрибутивов, за исключением Mandriva и её дериватов — Mageia и ROSA. Так что речи о нём здесь не будет.


Назад | К содержанию | Вперёд