Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rpm5

1,072 views

Published on

  • Be the first to comment

Rpm5

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

×