SlideShare a Scribd company logo
1 of 21
Download to read offline
RPM5 — основные
достижения и планы на
      будущее

           Денис Силаков
          Евгений Буданов

                ROSA Lab
RPM5: история




●   2005 год — расхождение веток RPM4
●   2007 год — официальный запуск RPM5
●   январь 2008 года — RPM 5.0.0
●   ...
●   июль 2012 года — RPM 5.4.10
RPM5: использование



      Основной пакетный менеджер:
●   Mandriva
●   ROSA
●   WindRiver Linux
●   Unity Linux
●   OpenPKG
●   ...
Улучшения для мантейнеров


Реализованные:
●  Файловые триггеры
●  «Мягкие» зависимости
●  Встроенные интерпретаторы
●  Улучшенная работа с пакетами по сети
●  Различные подходы к уменьшению размера spec-
  файлов

Обсуждаемые:
●   Локализация описаний пакетов
●   Использование параллелизма при сборке
Файловые триггеры



Цель — вынести на уровень RPM действия,
общие для многих pre- и post-скриптов:
●  Вызов ldconfig при установке/удалении библиотек
●  Обновление кэша иконок
●  Переконфигурирование загрузчика при установке
  ядра
●  Перезапуск сервисов (например, Apache) при
  установке web-приложения
●  ...
Файловый триггер — пример grub2



grub2.filter

^./boot/vmlinuz­

grub2.script

#!/bin/sh
/usr/sbin/grub2­mkconfig ­o  
/boot/grub2/grub.cfg
Мягкие зависимости



Дополнительный атрибут зависимости -
RPMSENSE_MISSINGOK
●  Чтобы это заметил пользователь, необходима
  поддержка со стороны менеджера пакетов более
  высокого уровня (Urpmi, Smart, …) и
  соответствующего GUI-инструментария (Rpmdrake,
  Smart-gui, …)
● Не путать с SUGGESTS вместо REQUIRES
Встроенные интерпретаторы



Цель — возможность использовать в pre- и
post-скриптах что-то кроме shell:

●    Ruby
●    Python
●    Perl
●    Tcl
●    Lua
●    …

    + ODBC, SQL, Git, SVN, ...
Облагораживание spec-файлов



●   Генераторы зависимостей
●   Генераторы списков файлов с переводами
●   Автоматическое заполнение %name, %buildroot,
  ...
●   …

  В реальности: + помощь со стороны сред
  сборки:
●  Автогенерация Changelog
●  Вспомогательные макросы:
   %cmake, %gem_build, ...
Работа с сетью



Если какое-то действие можно произвести
над локальным файлом, то его же можно
выполнить для файла, доступного по HTTP
или FTP:

●  rpm ­qip http://mysite.com/mypackage.rpm
●  Указание удаленного источника в полях Source и 
  Patch
●  ...
Локализация описаний пакетов



Существующие подходы:
●   Локализация в spec-файлах
    разрастание размера, трудности совместной
    работы, ...
●   Отдельные пакеты с локализацией
    (specspo, mandriva-rpm-summary, …)
    привязка к процессу сборки, трудности с
    обновлением, ...
Локализация описаний —
            предложения RPM5


Использование content-addressable
storage

Система сборки
    (ABF)
                        Ключ:
                  <id пакета, язык>
                                       RPM
                      Значение:
   Система       summary/description
 локализации     на указанном языке
  (Transifex)
Использование параллелизма
           при сборке пакета



●   Сборка подпакетов
●   Использование параллельных алгоритмов сжатия
    (gz -> pigz, bz2 -> pbzip2, xz — встроенная поддержка)
Улучшения для пользователей




●  Транзакционное управление пакетами (RPM ACID)
●  Использование параллелизма при установке
  пакетов
●  Использование СКВ (Git, SVN) для отслеживания
  изменений файлов конфигурации
Транзакционное управление
                  пакетами


Установка/удаление/обновление пакета как
атомарная транзакция:

●   Транзакция на уровне rpmdb
●   Отслеживание производимых системных вызовов
●

●   ...
Использование параллелизма
            при установке


При обработке группы пакетов:
 ● проверка GPG-подписей
 ● проверка контрольных сумм
 ● проверка зависимостей
 ● …

При обработке отдельного пакета:
 ● параллельное разархивирование
   (проблемы: нет реализации для xz, завязки в rpm на
   callback-функции для отслеживания прогресса, ...)
Config-файлы


Файлы конфигурации, входящие в состав
пакетов, которые могут изменяться
пользователями.

Что делать при обновлении пакета, в котором есть
новый файл?

Текущий подход:
а) оставляем старый файл, ставим новый с
суффиксом .rpmnew
b) сохраняем старый файл с суффиксом .rpmsave и
ставим новый вместо него
СКВ для config-файлов


Предлагаемый подход:
Храним файлы конфигурации в системе контроля
версий (Git, SVN, ...)

●   Отслеживаем полную историю, не только на уровне
    текущий/предыдущий файл
●   Возможность слияния (merge) файлов средствами СКВ
●   Нет замусоривания файловой системы
RPM5 vs RPM4


Параллельное развитие, по возможности —
поддержка совместимости
(большинство пакетов, собранных с помощью RPM4,
установятся в системах с RPM5)

●   Поддержка тильды в версиях (чтобы foo-1.0.rpm был
    новее, чем foo-1.0~beta.rpm)
●   Поддержка set-versions
●   ...
RPM5 vs RPM4 — commits per month

          (по данным http://ohloh.net)
                   RPM4




                    RPM5
Присоединяйтесь к
разработке RPM5!


       http://rpm5.org
  http://launchpad.net/rpm

            E-mail:
   denis.silakov@rosalab.ru
 eugene.budanov@rosalab.ru

More Related Content

What's hot

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиAndrey Markelov
 
Hacking PostgreSQL. Обзор архитектуры.
Hacking PostgreSQL. Обзор архитектуры.Hacking PostgreSQL. Обзор архитектуры.
Hacking PostgreSQL. Обзор архитектуры.Anastasia Lubennikova
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Прессit-people
 
Операционная система GNU/Linux: устройство и функционирование
Операционная система GNU/Linux: устройство и функционированиеОперационная система GNU/Linux: устройство и функционирование
Операционная система GNU/Linux: устройство и функционированиеyaevents
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven7bits
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control GroupsOSLL
 
Enterprise-инфраструктура менеджмента php-пакетов в рамках компании
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEnterprise-инфраструктура менеджмента php-пакетов в рамках компании
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEvgeny Fomin
 
poudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgpoudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgAndrey Fesenko
 
SphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksSphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksRoman Pavlushko
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 57bits
 
Webpack для самых маленьких | Odessa Frontend Meetup #5
Webpack для самых маленьких | Odessa Frontend Meetup #5Webpack для самых маленьких | Odessa Frontend Meetup #5
Webpack для самых маленьких | Odessa Frontend Meetup #5OdessaFrontend
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует GoArtem Kovardin
 
Владимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLВладимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLYandex
 
Расширения для PostgreSQL
Расширения для PostgreSQLРасширения для PostgreSQL
Расширения для PostgreSQLAnastasia Lubennikova
 
Совместимы ли понятия SDS и производительность?
Совместимы ли понятия SDS и производительность?Совместимы ли понятия SDS и производительность?
Совместимы ли понятия SDS и производительность?Mikhail Chusavitin
 

What's hot (18)

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Hacking PostgreSQL. Обзор архитектуры.
Hacking PostgreSQL. Обзор архитектуры.Hacking PostgreSQL. Обзор архитектуры.
Hacking PostgreSQL. Обзор архитектуры.
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Пресс
 
Операционная система GNU/Linux: устройство и функционирование
Операционная система GNU/Linux: устройство и функционированиеОперационная система GNU/Linux: устройство и функционирование
Операционная система GNU/Linux: устройство и функционирование
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Enterprise-инфраструктура менеджмента php-пакетов в рамках компании
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEnterprise-инфраструктура менеджмента php-пакетов в рамках компании
Enterprise-инфраструктура менеджмента php-пакетов в рамках компании
 
poudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgpoudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkg
 
SphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksSphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricks
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
 
Webpack для самых маленьких | Odessa Frontend Meetup #5
Webpack для самых маленьких | Odessa Frontend Meetup #5Webpack для самых маленьких | Odessa Frontend Meetup #5
Webpack для самых маленьких | Odessa Frontend Meetup #5
 
Docker 1.9
Docker 1.9Docker 1.9
Docker 1.9
 
HBase on Dev{Highload}
HBase on Dev{Highload}HBase on Dev{Highload}
HBase on Dev{Highload}
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
 
Владимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLВладимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQL
 
Расширения для PostgreSQL
Расширения для PostgreSQLРасширения для PostgreSQL
Расширения для PostgreSQL
 
Совместимы ли понятия SDS и производительность?
Совместимы ли понятия SDS и производительность?Совместимы ли понятия SDS и производительность?
Совместимы ли понятия SDS и производительность?
 
Package maintaining in Debian
Package maintaining in DebianPackage maintaining in Debian
Package maintaining in Debian
 

Viewers also liked

The romantic literature science vs. nature in mary shelly‘s frankenstein
The romantic literature science vs. nature in mary shelly‘s frankensteinThe romantic literature science vs. nature in mary shelly‘s frankenstein
The romantic literature science vs. nature in mary shelly‘s frankensteinyashpalsinhgohil1111
 
Inoculating Thailand against Communism
Inoculating Thailand against CommunismInoculating Thailand against Communism
Inoculating Thailand against Communismxingledout
 
Super-size religion: Comparing Wat Dhammakaya and Hope of Bangkok Church
Super-size religion: Comparing Wat Dhammakaya and Hope of Bangkok ChurchSuper-size religion: Comparing Wat Dhammakaya and Hope of Bangkok Church
Super-size religion: Comparing Wat Dhammakaya and Hope of Bangkok Churchxingledout
 
Literary theory and criticism tragic hero
Literary theory and criticism   tragic heroLiterary theory and criticism   tragic hero
Literary theory and criticism tragic heroyashpalsinhgohil1111
 
Critical Thinking Contextualising - Investigation
Critical Thinking Contextualising - InvestigationCritical Thinking Contextualising - Investigation
Critical Thinking Contextualising - Investigationmoskua
 
Testスライド(No.2)
Testスライド(No.2)Testスライド(No.2)
Testスライド(No.2)ohana-kidscare
 
Örgütsel değişimde direnç ve yatkınlık
Örgütsel değişimde direnç ve yatkınlıkÖrgütsel değişimde direnç ve yatkınlık
Örgütsel değişimde direnç ve yatkınlıkYunus Emre Sarıgül
 
Fanon the negro and recognition in black skin, white mask
Fanon  the negro and recognition in black skin, white maskFanon  the negro and recognition in black skin, white mask
Fanon the negro and recognition in black skin, white maskyashpalsinhgohil1111
 
YTU ELT students attitude towards using soft copy materials
YTU ELT students attitude towards using soft copy materialsYTU ELT students attitude towards using soft copy materials
YTU ELT students attitude towards using soft copy materialsYunus Emre Sarıgül
 

Viewers also liked (17)

The romantic literature science vs. nature in mary shelly‘s frankenstein
The romantic literature science vs. nature in mary shelly‘s frankensteinThe romantic literature science vs. nature in mary shelly‘s frankenstein
The romantic literature science vs. nature in mary shelly‘s frankenstein
 
Inoculating Thailand against Communism
Inoculating Thailand against CommunismInoculating Thailand against Communism
Inoculating Thailand against Communism
 
Super-size religion: Comparing Wat Dhammakaya and Hope of Bangkok Church
Super-size religion: Comparing Wat Dhammakaya and Hope of Bangkok ChurchSuper-size religion: Comparing Wat Dhammakaya and Hope of Bangkok Church
Super-size religion: Comparing Wat Dhammakaya and Hope of Bangkok Church
 
Ipw
IpwIpw
Ipw
 
Surface Computer
Surface ComputerSurface Computer
Surface Computer
 
Literary theory and criticism tragic hero
Literary theory and criticism   tragic heroLiterary theory and criticism   tragic hero
Literary theory and criticism tragic hero
 
Bum
BumBum
Bum
 
Critical Thinking Contextualising - Investigation
Critical Thinking Contextualising - InvestigationCritical Thinking Contextualising - Investigation
Critical Thinking Contextualising - Investigation
 
Nutritional Needs of UK Women
Nutritional Needs of UK WomenNutritional Needs of UK Women
Nutritional Needs of UK Women
 
Nutritional Needs of UK Men
Nutritional Needs of UK MenNutritional Needs of UK Men
Nutritional Needs of UK Men
 
Testスライド(No.2)
Testスライド(No.2)Testスライド(No.2)
Testスライド(No.2)
 
Örgütsel değişimde direnç ve yatkınlık
Örgütsel değişimde direnç ve yatkınlıkÖrgütsel değişimde direnç ve yatkınlık
Örgütsel değişimde direnç ve yatkınlık
 
Reorganizing Yahoo
Reorganizing YahooReorganizing Yahoo
Reorganizing Yahoo
 
Fanon the negro and recognition in black skin, white mask
Fanon  the negro and recognition in black skin, white maskFanon  the negro and recognition in black skin, white mask
Fanon the negro and recognition in black skin, white mask
 
Sony xperia
Sony xperiaSony xperia
Sony xperia
 
YTU ELT students attitude towards using soft copy materials
YTU ELT students attitude towards using soft copy materialsYTU ELT students attitude towards using soft copy materials
YTU ELT students attitude towards using soft copy materials
 
Mis in unilever
Mis in unileverMis in unilever
Mis in unilever
 

Similar to Rpm5

presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_confMax Glekov
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Ontico
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Dev_Party
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...IT-Portfolio
 
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...Rais Charipov
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1rit2011
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)IT-Доминанта
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3Computer Science Club
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва  Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва it-people
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014Alex Chistyakov
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration managementAlexander Kirillov
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаITCrowd Almaty
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиAlexey Demidchuk
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 

Similar to Rpm5 (20)

Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_conf
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Vagrant puppet
Vagrant puppetVagrant puppet
Vagrant puppet
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва  Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
 
Scaling PostgreSQL
Scaling PostgreSQLScaling PostgreSQL
Scaling PostgreSQL
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 

More from RosaLab

Ross2013 rubanov
Ross2013 rubanovRoss2013 rubanov
Ross2013 rubanovRosaLab
 
тройка
тройкатройка
тройкаRosaLab
 
калмыков росс 2013
калмыков росс 2013калмыков росс 2013
калмыков росс 2013RosaLab
 
Защищенные системы Rosa
Защищенные системы RosaЗащищенные системы Rosa
Защищенные системы RosaRosaLab
 
Функции системы ROSA Sputnik
Функции системы ROSA SputnikФункции системы ROSA Sputnik
Функции системы ROSA SputnikRosaLab
 
Dream product LinuxCon Europe Europe
Dream product LinuxCon Europe EuropeDream product LinuxCon Europe Europe
Dream product LinuxCon Europe EuropeRosaLab
 

More from RosaLab (7)

Ross2013 rubanov
Ross2013 rubanovRoss2013 rubanov
Ross2013 rubanov
 
тройка
тройкатройка
тройка
 
калмыков росс 2013
калмыков росс 2013калмыков росс 2013
калмыков росс 2013
 
Защищенные системы Rosa
Защищенные системы RosaЗащищенные системы Rosa
Защищенные системы Rosa
 
Функции системы ROSA Sputnik
Функции системы ROSA SputnikФункции системы ROSA Sputnik
Функции системы ROSA Sputnik
 
Dream product LinuxCon Europe Europe
Dream product LinuxCon Europe EuropeDream product LinuxCon Europe Europe
Dream product LinuxCon Europe Europe
 
Abf
AbfAbf
Abf
 

Rpm5

  • 1. RPM5 — основные достижения и планы на будущее Денис Силаков Евгений Буданов ROSA Lab
  • 2. RPM5: история ● 2005 год — расхождение веток RPM4 ● 2007 год — официальный запуск RPM5 ● январь 2008 года — RPM 5.0.0 ● ... ● июль 2012 года — RPM 5.4.10
  • 3. RPM5: использование Основной пакетный менеджер: ● Mandriva ● ROSA ● WindRiver Linux ● Unity Linux ● OpenPKG ● ...
  • 4. Улучшения для мантейнеров Реализованные: ● Файловые триггеры ● «Мягкие» зависимости ● Встроенные интерпретаторы ● Улучшенная работа с пакетами по сети ● Различные подходы к уменьшению размера spec- файлов Обсуждаемые: ● Локализация описаний пакетов ● Использование параллелизма при сборке
  • 5. Файловые триггеры Цель — вынести на уровень RPM действия, общие для многих pre- и post-скриптов: ● Вызов ldconfig при установке/удалении библиотек ● Обновление кэша иконок ● Переконфигурирование загрузчика при установке ядра ● Перезапуск сервисов (например, Apache) при установке web-приложения ● ...
  • 6. Файловый триггер — пример grub2 grub2.filter ^./boot/vmlinuz­ grub2.script #!/bin/sh /usr/sbin/grub2­mkconfig ­o   /boot/grub2/grub.cfg
  • 7. Мягкие зависимости Дополнительный атрибут зависимости - RPMSENSE_MISSINGOK ● Чтобы это заметил пользователь, необходима поддержка со стороны менеджера пакетов более высокого уровня (Urpmi, Smart, …) и соответствующего GUI-инструментария (Rpmdrake, Smart-gui, …) ● Не путать с SUGGESTS вместо REQUIRES
  • 8. Встроенные интерпретаторы Цель — возможность использовать в pre- и post-скриптах что-то кроме shell: ● Ruby ● Python ● Perl ● Tcl ● Lua ● … + ODBC, SQL, Git, SVN, ...
  • 9. Облагораживание spec-файлов ● Генераторы зависимостей ● Генераторы списков файлов с переводами ● Автоматическое заполнение %name, %buildroot, ... ● … В реальности: + помощь со стороны сред сборки: ● Автогенерация Changelog ● Вспомогательные макросы: %cmake, %gem_build, ...
  • 10. Работа с сетью Если какое-то действие можно произвести над локальным файлом, то его же можно выполнить для файла, доступного по HTTP или FTP: ● rpm ­qip http://mysite.com/mypackage.rpm ● Указание удаленного источника в полях Source и  Patch ● ...
  • 11. Локализация описаний пакетов Существующие подходы: ● Локализация в spec-файлах разрастание размера, трудности совместной работы, ... ● Отдельные пакеты с локализацией (specspo, mandriva-rpm-summary, …) привязка к процессу сборки, трудности с обновлением, ...
  • 12. Локализация описаний — предложения RPM5 Использование content-addressable storage Система сборки (ABF) Ключ: <id пакета, язык> RPM Значение: Система summary/description локализации на указанном языке (Transifex)
  • 13. Использование параллелизма при сборке пакета ● Сборка подпакетов ● Использование параллельных алгоритмов сжатия (gz -> pigz, bz2 -> pbzip2, xz — встроенная поддержка)
  • 14. Улучшения для пользователей ● Транзакционное управление пакетами (RPM ACID) ● Использование параллелизма при установке пакетов ● Использование СКВ (Git, SVN) для отслеживания изменений файлов конфигурации
  • 15. Транзакционное управление пакетами Установка/удаление/обновление пакета как атомарная транзакция: ● Транзакция на уровне rpmdb ● Отслеживание производимых системных вызовов ● ● ...
  • 16. Использование параллелизма при установке При обработке группы пакетов: ● проверка GPG-подписей ● проверка контрольных сумм ● проверка зависимостей ● … При обработке отдельного пакета: ● параллельное разархивирование (проблемы: нет реализации для xz, завязки в rpm на callback-функции для отслеживания прогресса, ...)
  • 17. Config-файлы Файлы конфигурации, входящие в состав пакетов, которые могут изменяться пользователями. Что делать при обновлении пакета, в котором есть новый файл? Текущий подход: а) оставляем старый файл, ставим новый с суффиксом .rpmnew b) сохраняем старый файл с суффиксом .rpmsave и ставим новый вместо него
  • 18. СКВ для config-файлов Предлагаемый подход: Храним файлы конфигурации в системе контроля версий (Git, SVN, ...) ● Отслеживаем полную историю, не только на уровне текущий/предыдущий файл ● Возможность слияния (merge) файлов средствами СКВ ● Нет замусоривания файловой системы
  • 19. RPM5 vs RPM4 Параллельное развитие, по возможности — поддержка совместимости (большинство пакетов, собранных с помощью RPM4, установятся в системах с RPM5) ● Поддержка тильды в версиях (чтобы foo-1.0.rpm был новее, чем foo-1.0~beta.rpm) ● Поддержка set-versions ● ...
  • 20. RPM5 vs RPM4 — commits per month (по данным http://ohloh.net) RPM4 RPM5
  • 21. Присоединяйтесь к разработке RPM5! http://rpm5.org http://launchpad.net/rpm E-mail: denis.silakov@rosalab.ru eugene.budanov@rosalab.ru