Post-graduate student of MIPT Chernov Evgeny Institute for System Programming of RAS 2010
Introduction: Software Distribution 1. Code Sources 2. Repositories of Operation Systems 2
Introduction: Software Distribution (2) 3. Independent Software Vendor (ISV) 3 Meta-data contains dependency information. Meta-data depends on particular Linux distribution. Binary file can depend on distribution (is solved by LSB standard)
Example of Different Dependency Names OpenSUSE 11.2Fedora 12Debian 5Mandriva 2010 kdebase4-runtime kdebase-runtime kdebase4-runtime kdebase-runtime-libs kdebase-bin-kde3 libkaudiodevicelist4 kdebase-runtime-data libqt4-x11qt-x11libqtgui4qtguilib perlperl(Test::More)perl-modulesperl xorg-x11-libXextlibXextlibxext6libxext 4
Proposal Resolve 5
Mathematical Model Description of sets of Linux systems, packages, files and dependency elements. Relations between these sets Formal description of the task. Formal algorithm of its resolving 6
Solution of the Task The solution is based on the following statements: The software that depends on some package in the system, depends on the files which are provided by the package. The names of the files of some program are the same on every Linux systems. 7
Web-service Contains 3 public functions: Determination of names of corresponding dependencies on other distributions Check the status of particular dependency on some Linux OS Determination of name of Linux system where the package was built (by set of its dependences) 8
Usage of The System Manual package building (GUI over the web-service) Automatic package building systems (like openSUSE Build Service) Cross-distro Installer tool Special plugin for alien tool 9
Cross-Distro Installer 10
Plugin for Alien Tool 11
Future Work Upload new Linux systems in the database Upload repositories of Linux system. Acceleration of the searching of corresponding dependencies. Integration the system in the openSUSE Build Service system. 12
Thank you for your attention 13
Обзор близких работ Создание единого пакета: Autopackage (2002 – 2007 гг., Mike Hearn) Zero install (с 2003 г, Thomas Leonard) Klik (Simon Peter) Унификация работы с пакетными менеджерами: Smart Package (с 2004 г, Gustavo Niemeyer) PackageKit (с 2007 г, Richard Hughes) Собственный пакетный менеджер: Conary (с 2004 г. rPath, Inc) Система сбоки пакетов на разных платформах: openSUSE Build Service (с 2007 г, Novell) 14
Обработка информации в БД Определяется тип и подтип для каждого файла (всего 7 типов и 42 подтипа). Например: program, shell script. Определяется вид каждой зависимости (программа, библиотека, маркер) Для каждого пакета определяется список главных файлов Разрешаются символические ссылки между пакетами Определяются главные файлы для метапакетов Определяется файлы, предоставляемые каждой зависимостью 15
Work Results Web-service with 10 distributions support Graphic interface over the web-service (for manual package building) Tools for building and installing universal packages The system is tested successfully for 50 arbitrary packages from different distributions 16
Математическая модель Описание множеств дистрибутивов, пакетов, файлов, элементов зависимостей. Отображения между множествами. Формальная постановка задачи поиска соответствующих элементов зависимостей. Формальное доказательство правильности предложенного решения этой задачи. 17
Направления дальнейших работ Web-служба: Получение информации из репозиториев дистрибутивов. Увеличение числа поддерживаемых дистрибутивов Внедрение web-службы в известные инструменты: openSUSE Build Service, alien Универсальные пакеты: Создание графического интерфейса для сборки универсальных пакетов Интеграция инструмента установки универсальных пакетов в системные программы управления пакетами (Yast, yum, aptitude, PackageKit) 18