LINUX.ORG.RU
ФорумTalks

RPM5: только факты


0

4

Домыслов и слухов по поводу RPM5 – бесчисленное множество. Постараемся немного прояснить ситуацию и рассмотрим самые серьезные изменения RPM5 по сравнению с «оригинальным» RPM компании Red Hat.

Причины появления RPM5

Изначально задачи создания отдельного проекта RPM5 не было: просто за десять лет развития кода RPM4 в нем накопилось много лишнего, и назрела необходимость в глубоком рефакторинге. Тогдашний ведущий разработчик и мантейнер Джефф Джонсон давно вынашивал эту идею и даже начал вносить изменения в версию rpm 4.x. Однако проблемы введения патчей в основной продукт и политика Red Hat, направленная на обеспечение его совместимости и стабильной работы, привели к появлению в 2007 году RPM5. Кроме того, в четвертой ветке rpm практически для каждого rpm-based дистрибутива (скажем, openSUSE или Mageia) дописывается масса патчей, и порой такой код достигает устрашающих размеров (ALT Linux). Соответственно, требовался технологический задел для создания значительно более цельного и универсального пакетного менеджера. Наконец, серьезная переработка API и ABI позволит значительно упростить создание высокоуровневых приложений, работающих с rpm, и сильно облегчить мантейнерам работу по сопровождению пакетной базы дистрибутива.

Отличия RPM5 от RPM4

В RPM5 вычищен устаревший и ненужный код, удалена совместимость с RPM v3 и переработаны привязки (bindings) для языка Perl. Внесены функции проверки сборок пакетов и обратной совместимости с предыдущими версиями. Добавлены интерпретатор для языка Lua, поддержка синтаксиса YAML для файлов спецификаций, биндинги для языка Ruby. В результате ускорился ход операций и решен ряд застарелых проблем.

В этой версии появилось множество возможностей, которые в RPM4 отсутствовали. Среди них – поддержка алгоритма сжатия LZMA, улучшенная обработка событий при установке, обновлении, удалении пакетов и др. Часть нововведений потом перенесли и в RPM4. Важные отличия RPM5 от изначального продукта – поддержка компиляторов Sun Studio и Intel C Compiler (а не только GCC) и, помимо Linux, других платформ – MacOS, *BSD, Cygwin и Solaris. В будущем ничто не мешает добавить поддержку «настоящей» Windows, а не через cygwin.

Что же касается нашумевшего функционала «мягкие зависимости», он есть и в RPM4 (теги SUGGESTS и ENHANCES). Но в RPM5 помимо этих тегов введен атрибут RPMSENSE_MISSINGOK, который можно указать для каждой зависимости из набора REQUIRES, а не только для пакета в целом.

Для мантейнеров и пользователей все должно быть прозрачно, поскольку форматы пакетов обеих версий rpm прямо и обратно совместимы, поддерживается подавляющее большинство макросов в spec-файлах. Но кое-что претерпело изменения, например синтаксис и поведение некоторых макросов, таких как %post и %exclude. Расширились возможности части старых макросов – скажем, для %install добавлена функция ускоренной сборки пакета. Для утилиты rpm создано множество новых опций и алиасов (полный список см. здесь).

В RPM5 нет поддержки стандарта LSB (т.к. совместимость с RPM v3 устранили), но для Mandriva/ROSA Linux эта функциональность специально оставлена. В комитете по разработке LSB понимают, что RPM v3 устарел, и, насколько известно, в версии LSB 5.0 или старше требования к RPM будут значительно переработаны.

Для кого предназначен и где используется RPM5

Для пользователей и мантейнеров дистрибутивов RPM5 не несет революционных изменений, он, скорее, предназначен для разработчиков.

Вопреки распространенному мнению, версия RPM5 используется далеко не только в Mandriva/ROSA Linux. Сначала она нашла применение у разработчиков Unity Linux, потом – в дистрибутивах Wind River Linux и Ark Linux, проектах OpenPKG, CAOS Linux и OpenEmbedded.

Развенчаем еще одно заблуждение – о том, что rpm 5.x используется дистрибутивами ALT Linux. Это не соответствует действительности, поскольку в них задействован очень сильно доработанный, но все же rpm 4.0. Правда, идея перевода ALT Linux на пятый RPM возникала, и в рассылке разработчиков даже фигурировали кое-какие патчи, но на том все и закончилось. В целом, RPM5 развивается значительно активнее его «соседа» из Red Hat. А наличие, к тому же, достаточного числа действующих комиттеров и активное обсуждение RPM5 в почтовых рассылках внушают оптимизм по поводу будущего этого продукта.

(C)Евгений Буданов



Последнее исправление: RosaLab (всего исправлений: 1)

Ура товарищи !

dada ★★★★★
()

RPM5 - это не _версия_ RPM, это его форк.

Форк с абсолютно хамски выбранным названием - в угоду маркетологическим порывам, но против всякой технической логики. Пусть это будет на совести автора проекта, но постить подобные «распространенные заблуждения» под видом «аналитической» статьи не стоит.

alpha ★★★★★
()

В этой версии появилось множество возможностей, которые в RPM4 отсутствовали. Среди них – поддержка алгоритма сжатия LZMA,

а мужики то незнают, с 4.8 используют lzma

Novell-ch ★★★★★
()

Ох уж это желание пнуть альт.

thesis ★★★★★
()

только факты

RosaLab, раз уж у вас там такой зуд по фактам, разместите на местной вики сравнительную табличку rpm4 vs rpm5 vs deb vs bsd_tbz. А пока это больше смахивает на микрософтовский get the facts.

Manhunt ★★★★★
()

А на rpm5.org как интересно-то.

Нигде на главной странице нет упоминания того, что rpm5 (вообще нет такого названия, везде просто rpm) не имеет никакого отношения к самой популярной ветке 4.* (и что 4.* еще живо и развивается).

И это вот:

RPM was originally written in 1997 by Erik Troan and Marc Ewing for use in the Red Hat Linux distribution. Later the development of RPM became a classical free software community effort, now lead since many years by RPM's primary developer Jeff Johnson.

То есть какбэ вы поняли - в мечтах разработчиков нет rpm, кроме rpm5.

roq
()
Ответ на: только факты от Manhunt

Ну раз они альт обсирают, пусть уж и с альтовским rpm сравнят.

Vovka-Korovka ★★★★★
()

Чего только не придумают, лишь бы не использовать .deb

Polugnom ★★★★★
()
Ответ на: комментарий от Okitain

Стоп, у RPM5 нет lsb-совместимости? Серьезно? Вы в курсе, зачем LSB нужен, да?

Совместимость в RPM-4.8 есть только в смысле «можно установить готовый валидный LSB-пакет». Средств создания валидных LSB-пакетов (как и самих таких пакетов) сейчас просто нет. То, что распространяется де-факто - это пакеты вида RPM v4, не проходящие проверку утилитой из LSB test suite. RPM5 их прекрасно ставит.

AEP ★★★★★
()

>RPMSENSE_MISSINGOK

Бессмысленные и беспощадные названия.

Deleted
()
Ответ на: комментарий от Vovka-Korovka

Пиар росы/антипиар альта?

это антипиар всех трех, включая rpm5

Худшее, что можно сделать придя в мир Open-Source разработки - это попытаться перенять маркетинговую стратегию винды, обращаясь к своему пользователю(а точнее потенциальному разработчику) как к неграмотному потребителю, не умеющему критически осмысливать услышанное.

Следующий по степени маркетинговой неграмотности шаг - это доверить написание «программных» текстов человеку не владеющему темой и не замечающему ничего странного во фразах типа "эти патчи не приняли в основную ветку RPM из-за политики Red Hat, направленной на обеспечение его совместимости и стабильной работы".

Ну завершить этот мастер-класс на тему «как не надо делать», можно выкладыванием получившегося опуса на ЛОР на всеобщее обозрение.

alpha ★★★★★
()

Лучше расскажите, убрали ли тот идиотизм с необходимостью перечисления всех файлов в %files?

h31 ★★★★
()

Какое счастье, что я перешел дома на арч и больше не буду мучиться с этим дебильным rpm'ом. А как на работе мандурива накроется медным тазиком, туда тоже арчик запилю.

Eddy_Em ☆☆☆☆☆
()

RosaLab, так RPM5 - это от RedHat или совсем другая система с нагло стыренным названием?

Quasar ★★★★★
()
Ответ на: комментарий от alpha

Да вообще-то все темы и новости от RosaLab, которые я видел, преисполнены неадекватным изложением информации.

Quasar ★★★★★
()

В RPM5 нет поддержки стандарта LSB

</thread> Даешь стандартизацию GNU/Linux. Велик написать каждый сможешь. Собрать сообщество, а то и весь мир куда важней задача.

gh0stwizard ★★★★★
()
Ответ на: комментарий от Deleted

Что ты мне хочешь доказать? Есть ISO-стандарты, есть корпорации для которых стандарт означает не только крутое слово, а то что все четко и ясно расписано, то, чему доверяют большинство. Дебиан это дебиан, увы это не коммерческий продукт, чтобы не говорили и где бы он не использовался. При этом http://www.rosalab.ru это коммерческая организация, которая хочет выйти на рынок, стать круче RH. Я критикую выбранную ими бизнес-модель. А не то, что LSB RIP. Увы, только у нас ГОСТ уже не является эталоном, ведь на прилавках полно товара, который пипл схавает с надписью ТУ.

gh0stwizard ★★★★★
()
Ответ на: комментарий от Deleted

Слушай, я не понимаю и не хочу пытаться обратить тебя в свою веру. Есть отличный пример для размышлений из двух слов: Red Hat </thread>

gh0stwizard ★★★★★
()
Ответ на: комментарий от Deleted

Я дам пример: есть критически важные задачи, например, лэптопы фирмы Panasonic соответствуют многим стандартам. Некоторые здесь эти лэптопы ненавидят лишь потому, что они стоят овер 4 килобаксов. А почему? Потому что им плевать на стандарты, которые расписаны на 300 страницах, где указаны все возможные тесты проведенные над каждым выпускаемом аппаратом. Если вы уроните этот лаптоп с 1.2 метров (именно так указано в стандарте) 30 раз подряд, то с ноутбуком ничего не случится. А теперь возмите любой ноутбук, который не имеет данного стандарта и шлепните раз 10. Естественно, ноут должен быть включен.

gh0stwizard ★★★★★
()
Ответ на: комментарий от Quasar

Quasar

RPM5 - это от RedHat или совсем другая система с нагло стыренным названием?

RPM5 — это совсем другая система с нагло стыренным названием

dexpl ★★★★★
()
Ответ на: комментарий от h31

Лучше расскажите, убрали ли тот идиотизм с необходимостью перечисления всех файлов в %files?

Это не идиотизм, а защита от дурака.

Nxx ★★★★★
()
Ответ на: комментарий от kda

Что-то близкое к Вашим требованиям уже существует.

Не паонятно, чем именно мягкие зависимости в RPM5 реализованы лучше, чем в RPM. Про тег «Recommends», который обычно и используется (а не «Suggests», который в общем-то бесполезен), вообще ни слова не сказано. Чем ваш RPMSENSE_MISSINGOK лучше, чем «Recommends»?

Nxx ★★★★★
()
Ответ на: комментарий от kda

Написано «В RPM4 подобной функциональности нет.». Какой-такой функциональности нет? Есть аж четыре тега для мягких зависимостей: Recommends, Suggests, Supplements, Enhances. Куда уж больше?

Nxx ★★★★★
()
Ответ на: комментарий от h31

От чего защищаться-то?

От упаковки в пакет ненужных файлов, например.

Кроме того, если вдруг сборка каких-то компонентов отключится из-за того, что configure не смогла обнаружить новые версии либ (или новые версии не подходят), то будет фейл. А если в пакет запихиваются все файлы без разбора, то создастся пакет без нужных компонентов а то и вообще пустой.

Nxx ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.