Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016)

Материал из 0x1.tv

(перенаправлено с «20161001B»)

Аннотация

Докладчик
Глеб Фотенгауэр-Малиновский.jpg
Глеб Фотенгауэр-Малиновский

Используемый в ALT пакетный менеджер RPM является форком RPM версии 4.0.4, выпущенной в феврале 2002 года. За эти годы оба проекта сильно изменились. В докладе будет рассказано о устройстве RPM и об успехах достигнутых за последние полгода в переносе нужного нам функционала на современную версию RPM — 4.13.

Видео

on youtube

Слайды

Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016).pdf

Расширенные тезисы

История RPM

В 1995 Эрик Троан и Марк Эвинг начали разработку RPM. Это была уже третья попытка (после RPP и PM) компании Red Hat сделать пакетный менеджер. С 1998 года к проекту подключился Джефф Джонсон и почти сразу стал основным разработчиком. В результате ухода Джеффа Джонсона из Red Hat в 2005 году появилось два независимых проекта разработки RPM — RPM5.org, который продолжает разрабатывать Джефф Джонсон, и RPM.org, который в основном разрабатывают сотрудники Red Hat.

Устройство RPM

RPM можно разделить на две части: установщик пакетов rpm и сборщик пакетов rpmbuild, которые сосуществуют в одном проекте больше по историческим причинам, чем по техническим. Установщик пакетов помимо собственно установки, удаления и обновления пакетов, обслуживания системной базы данных установленных пакетов, также включает в себя библиотеку librpm, предоставляющую API для работы с базой данных и установки пакетов.

Ситуация с RPM в ALT

С 2002 года в RPM было добавлено множество фич, и им было собрано в Сизиф больше 84,5 тысячи бинарных пакетов из 17,5 тысяч исходных пакетов. Главным поводом для обновления RPM является API librpm. Тот API, что есть у нас уже много лет, не устраивает современные проекты. Обновление RPM — дело рискованное, потому что после обновления все бинарные пакеты должны продолжать устанавливаться, а все исходные — продолжать собираться в такие же бинарные пакеты.

Было принято решение разделить обновление RPM на две стадии: обновление установщика (включая библиотеку и её API) и обновление сборщика rpmbuild.

Основные отличия RPM:

  • Зависимости на символы в библиотеках;
  • Учёт времени сборки пакета при сравнении версий;
  • Отсутствие epoch не считается эквивалентным epoch=0;
  • Другое устройство файловых триггеров;

Результаты

На данный момент первую стадию можно считать завершённой — разделённые установщик rpm-4.13 и сборщик rpm-build-4.0.4 готовятся к отправке в Сизиф. Для этого обновления потребовалось исправить пакеты, использующие API librpm, в первую очередь — apt.

Примечания и отзывы

Альтернатива «горбатому» RPM — двугорбый RPM (Глеб Фотенгауэр-Малиновский, OSSDEVCONF-2016)!.jpg

Plays:90   Comments:0