View on GitHub

Debuilder

Download this project as a .zip file Download this project as a tar.gz file

Собрать пакет datacentric-debuild

git clone https://github.com/DataCentricAlliance/debuilder.git
cd debuilder/debuilder
sudo apt-get install debhelper devscripts python-opster python-debian python-tz
./deb.py build
#пакет будет лежать в папке build

Настройка окружения

#устанавливаем пакет datacentric-debuild
sudo apt-get install datacentric-debuild

#устанавливаем переменные окружения
export DEBEMAIL="i.ivanov@datacentric.ru"
export DEBFULLNAME="Ivan Ivanov"
export DEBREPOSITORY="example.repo.net:/opt/ubuntu/mini-dinstall/incoming/"

Увеличить версию пакета

#добавили запись в changelog и собрали с новой версией
./deb.py build -v <maj|min|mntn|build> -m <message>

#changelog надо закоммитить (лучше вместе с остальными изменениями пакета)
git commit -a -m "теперь точно всё работает"

#мержим ветку через gitlab
git push origin ...

#кладём пакет в репозиторий
./deb.py pub

Создание пакета

#создаём папку где будет лежать наш проект
mkdir mypackage
cd mkdir

#создаём папку debian, changelog и файл deb.py
#в папку debian нужно класть post/pre скрипты
mkdir debian
touch debian/changelog
touch deb.py
chmod a+x deb.py

#добавляем всё в git
git add *

#редактируем файл deb.py, смотреть "Описание deb.py"
vim deb.py

#добавляем запись в changelog и собираем пакет
./deb.py build -v min -m "Initial release"

#коммитим, проходим ревью, мёржим
git commit -a -m "add new package mypackage"

#отправляем пакет в репозиторий
./deb.py pub

Описание deb.py

Пример:

!/usr/bin/python

from facetz.utils.debuild import *

dispatch(
    Package(
        name = "mypackage",
        section = "facetz",
        description = "Tool that is never falls",
        depends = "python-pymongo",
        conflicts = "myoldpackage",

        commands = [Copy(["mypackage.*.cfg"], "/etc/mypackage/"),
                    EnvLink("/etc/mypackage/mypackage.$ENV.cfg", "/etc/mypackage/mypackage.cfg"),
                    Copy(["tool.py", "common.py"], "/opt/facetz/mypackage/")              
                    Mkdir("/var/log/facetz/mypackage")]
    )
)