SlideShare a Scribd company logo
UNИX / Package maintaining in Linux
Package maintaining in Debian
Alexander GQ Gerasiov <gq@debian.org>
uneex@cs.msu.su / 11.11.2009
Debian — не дистрибутив
«The Debian Project is an association of
individuals who have made common cause to
create a free operating system.»
Debian Social Contract
● Debian will remain 100% free (by DFSG)
– Free Redistribution
– Source Code
– Derived Works
– No Discriminations
– Distribution of License
● We will give back to the free software
community
● We will not hide problems
● Our priorities are our users and free software
● Works that do not meet our free software
standards
Что такое Debian сегодня
● 13 официально поддерживаемых
архитектур
● ~1k разработчиков
● 14208+142 программных продуктов
● 26664+207 бинарных пакетов
● 555561 запись в BTS
Кто все эти люди?
● Debian Developer
● Package Maintainer
● Debian Maintainer
Роль «сопровождающего»
● Создание пакета
● Поддержка пакета:
– исправление ошибок в пакете
– обновление пакета
● Реакция на сообщения об ошибках
● Взаимодействие в автором ПО (upstream)
● NMU
Инфраструктура
● Списки рассылки
● Groupware:
– BTS
– PTS
– alioth
– wiki
● FTP-архив
BTS
● Web-интерфейс: http://bugs.debian.org
● Mail-интерфейс: @bugs.debian.org
● reportbug
Понятие пакета
● Программный компонент:
– утилита;
– библиотека;
– документация;
– ресурсы/данные.
● Дерево зависимостей.
● Единица дистрибуции.
● Простота vs. сложность.
● Пакет — часть системы.
● Debian Policy Manual.
Debian Policy
● Устройство архива Debian
● Требования к бинарным пакетам
● Требования к пакетам исходных текстов
● Требования к вспомогательным скриптам
● Системные политики (FSHS, init, conffiles,
alternatives)
● Дополнительные документы
● Пример требования из Policy
Бинарный пакет
● Исполнимый код/данные
● Метаинформация
● Инструкция по установке/удалению:
– preinst
– postinst
– prerm
– postrm
Пакет исходных текстов
● Архив ПО от автора
● Метаинформация для дистрибутива
● Правила сборки
● Изменения
– Интеграция
– Исправление ошибок
Сборка бинарного пакета
● dpkg-deb
● make -f debian/rules
● dpkg-buildpackage
Пакет в деталях
● debian/control
● debian/copyright
● debian/changelog
● debian/rules
Минутка демонстрации
press <Alt-Tab> to continue
Вспомогательные инструменты
● Упрощение написания debian/rules
● Работа с patch-set'ами
● Проверки корректности
● Облегчение/улучшение сборки
● Взаимодействие с SCM
debhelper
● dh_install
● dh_installcron
● dh_installman
● dh_fixperms
● dh_compress
cdbs
● Черная магия против рутины
quilt/dpatch
● Выделение всех изменений в отдельные
патчи.
pbuilder
● pbuilder
● cowbuilder
● qemubuilder
● sbuild
lintian & piuparts
● lintian - автоматизированная проверки
соответствия Policy и наличия типичных
ошибок.
● piuparts - автоматизированная проверка
maintainer's scripts.
● licensecheck
Сопряжение с SCM
● cvs-buildpackage
● svn-buildpackage
● git-buildpackage
● etc.
Release cycle
«Debian %codename% will be released when it's
ready.»
● Репозиторий пакетов
● Freeze
● Release
● Трехуровневая модель
Репозитории/дистрибутивы
● unstabe
● testing
● stable
● stable-security/stable-proposed-updates
● flowchart
Как участвовать в проекте
● Пользователь
● Maintainer
● Debian Developer
Материалы
● http://debian.org
● Debian Policy Manual
● Debian Developers' Reference
● Debian New Maintainer's Guide

More Related Content

What's hot

Docker 1.9
Docker 1.9Docker 1.9
Crypto Install Fest 2015 - хранение паролей
Crypto Install Fest 2015 - хранение паролейCrypto Install Fest 2015 - хранение паролей
Crypto Install Fest 2015 - хранение паролей
OmskLUG
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQ
Alexander Svetkin
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker
Andrey Markelov
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
OSLL
 
Perl и SPDY
Perl и SPDYPerl и SPDY
Perl и SPDY
Ilya Zelenchuk
 
6.2 Скроллинг текста
6.2 Скроллинг текста 6.2 Скроллинг текста
6.2 Скроллинг текста dengchunxu
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
Andrey Markelov
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
OpenVZ
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
Kirill Danilov
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Yandex
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
 
Электронный архив документов операционного дня банка на базе системы Docsvision
Электронный архив документов операционного дня банка на базе системы DocsvisionЭлектронный архив документов операционного дня банка на базе системы Docsvision
Электронный архив документов операционного дня банка на базе системы Docsvision
Docsvision
 
Express test BSD desktop
Express test BSD desktopExpress test BSD desktop
Express test BSD desktop
Дима Ванькевич
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
Andrey Markelov
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
MoscowJS
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
OSLL
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
Alex Chistyakov
 
05 db server_deployment_ru
05 db server_deployment_ru05 db server_deployment_ru
05 db server_deployment_ru
mcroitor
 

What's hot (20)

Docker 1.9
Docker 1.9Docker 1.9
Docker 1.9
 
Crypto Install Fest 2015 - хранение паролей
Crypto Install Fest 2015 - хранение паролейCrypto Install Fest 2015 - хранение паролей
Crypto Install Fest 2015 - хранение паролей
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQ
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Perl и SPDY
Perl и SPDYPerl и SPDY
Perl и SPDY
 
6.2 Скроллинг текста
6.2 Скроллинг текста 6.2 Скроллинг текста
6.2 Скроллинг текста
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
 
Электронный архив документов операционного дня банка на базе системы Docsvision
Электронный архив документов операционного дня банка на базе системы DocsvisionЭлектронный архив документов операционного дня банка на базе системы Docsvision
Электронный архив документов операционного дня банка на базе системы Docsvision
 
Express test BSD desktop
Express test BSD desktopExpress test BSD desktop
Express test BSD desktop
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
05 db server_deployment_ru
05 db server_deployment_ru05 db server_deployment_ru
05 db server_deployment_ru
 

Viewers also liked

В поисках эффективного middleware
В поисках эффективного middlewareВ поисках эффективного middleware
В поисках эффективного middleware
Alexander Gerasiov
 
Qt
QtQt
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
Qt (mvc)
Qt (mvc)Qt (mvc)
Linux drivers
Linux driversLinux drivers
Linux drivers
Alexander Gerasiov
 
Кластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в IpythonКластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в Ipython
Михаил Жуковец
 
Лицензирование ПО в современном мире
Лицензирование ПО в современном миреЛицензирование ПО в современном мире
Лицензирование ПО в современном мире
Alexander Gerasiov
 
RnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиRnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработки
Alexander Gerasiov
 
iptables
iptablesiptables

Viewers also liked (12)

В поисках эффективного middleware
В поисках эффективного middlewareВ поисках эффективного middleware
В поисках эффективного middleware
 
Data storage systems
Data storage systemsData storage systems
Data storage systems
 
Qt
QtQt
Qt
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
 
Qt (mvc)
Qt (mvc)Qt (mvc)
Qt (mvc)
 
Git
GitGit
Git
 
Linux drivers
Linux driversLinux drivers
Linux drivers
 
Кластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в IpythonКластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в Ipython
 
Лицензирование ПО в современном мире
Лицензирование ПО в современном миреЛицензирование ПО в современном мире
Лицензирование ПО в современном мире
 
Brands.i look v5-n6
Brands.i look v5-n6Brands.i look v5-n6
Brands.i look v5-n6
 
RnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиRnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработки
 
iptables
iptablesiptables
iptables
 

Similar to Package maintaining in Debian

Git for you
Git for youGit for you
Git for you
Pavel Alexeev
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
DefconRussia
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
IT-Доминанта
 
Python dependencies
Python dependenciesPython dependencies
Python dependencies
Ivan Kolodyazhny
 
Пакетирование для Debian/Ubuntu
Пакетирование для Debian/UbuntuПакетирование для Debian/Ubuntu
Пакетирование для Debian/Ubuntu
samsolutionsby
 
Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
Alexander Svetkin
 
Вячеслав Бирюков - Дистрибутивы Linux
Вячеслав Бирюков - Дистрибутивы LinuxВячеслав Бирюков - Дистрибутивы Linux
Вячеслав Бирюков - Дистрибутивы LinuxYandex
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENBAleksandr Boichenko
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
Дмитрий Васильев
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
 
Controlul versiunilor
Controlul versiunilor Controlul versiunilor
Controlul versiunilor
Dmitrii Stoian
 
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Minsk Linux User Group
 
Specializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyah
Specializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyahSpecializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyah
Specializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyah
Львовский ПЛЖТ
 
Менеджер пакетов NuGet
Менеджер пакетов NuGetМенеджер пакетов NuGet
Менеджер пакетов NuGet
GetDev.NET
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
Positive Hack Days
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
IT-Portfolio
 
Open suse microsoft powerpoint
Open suse microsoft powerpointOpen suse microsoft powerpoint
Open suse microsoft powerpoint
Nick535
 

Similar to Package maintaining in Debian (20)

Git for you
Git for youGit for you
Git for you
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
 
Python dependencies
Python dependenciesPython dependencies
Python dependencies
 
Пакетирование для Debian/Ubuntu
Пакетирование для Debian/UbuntuПакетирование для Debian/Ubuntu
Пакетирование для Debian/Ubuntu
 
Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
 
Вячеслав Бирюков - Дистрибутивы Linux
Вячеслав Бирюков - Дистрибутивы LinuxВячеслав Бирюков - Дистрибутивы Linux
Вячеслав Бирюков - Дистрибутивы Linux
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENB
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
 
Controlul versiunilor
Controlul versiunilor Controlul versiunilor
Controlul versiunilor
 
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Specializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyah
Specializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyahSpecializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyah
Specializirovannye distributivy dlya_ustarevshih_pk_v_byudzhetnyh_uchrezhdeniyah
 
Менеджер пакетов NuGet
Менеджер пакетов NuGetМенеджер пакетов NuGet
Менеджер пакетов NuGet
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
Git basis
Git basisGit basis
Git basis
 
Open suse microsoft powerpoint
Open suse microsoft powerpointOpen suse microsoft powerpoint
Open suse microsoft powerpoint
 

Package maintaining in Debian