Допустим, что я хочу создать репозиторий-оверлей (в терминах Gentoo), для Debian.
Имя у него будет, допустим, gradle-repo.
/usr/local/gradle-repo/
Нужно будет где-то хранить исходники для сборки.
например, каждый в отдельной директории
/usr/local/gradle-repo/sources/<имя-пакета>/ (.git)
исходные текстовые файлы со скриптами, которые создают .deb-файлы
(аналог .ebuild-скриптов в Gentoo).
для каждого пакета создаём директорию
/usr/local/gradle-repo/recipes/<имя-пакета>/debian/
- rules (Makefile-подобный скрипт сборки)
- control (Зависимости, метаданные пакета, описание)
- copyright (Информация о лицензиях)
- патчи (patches/ — квалтифицированные патчи (если формат 3.0 (quilt)))
- changelog (История изменений пакета)
- различные скрипты (postinst, prerm)
Директория с бинарными файлами в формате .deb будет называтся, допустим
/usr/local/gradle-repo/binaries/
./pool/main/<имя-пакета>/ (*.deb)
.orig.tar.gz — оригинальный исходный код от разработчиков программы (upstream)
.diff.gz) — всё, что сделали разработчики Debian: папка debian/ с правилами, патчами, etc.
.dsc (Debian Source Control) — текстовый файл с метаданными и контрольными суммами
APT скачает исходный код этой зависимости, если в бинарном репозитории
будут лежать не только .deb, но и соответствующие .dsc и .orig.tar.gz файлы.
Пакет с исходным кодом для отладки (Debug package) — -dbgsym.deb
/usr/local/gradle-repo/binary-repo/
./dists/stable/main/binary-amd64/ (Packages, Packages.gz, Release)
./dists/stable/main/source/ (Sources, Sources.gz, Release)
/usr/local/gradle-repo/scripts/
build-package.sh # Сборка одного пакета
build-all.sh # Сборка всех зависимостей
update-repo.sh # Обновление метаданных репозитория
create-new-package.sh # Создание шаблона для нового пакета
/usr/local/gradle-repo/config/
для конфигурирования программ, работающих с репозиторием
./mini-dinstall/logdir/
sudo apt install mini-dinstall
/etc/mini-dinstall/mini-dinstall.conf
в конфиге мы указываем incoming: /usr/local/gradle-repo/config/mini-dinstall/incoming/
sudo systemctl enable mini-dinstall
sudo systemctl start mini-dinstall
Пакет собирать командами
cd /usr/local/gradle-repo/sources/gradle-foo
ln -s /usr/local/gradle-repo/recipes/gradle-foo/debian .
dpkg-buildpackage -us -uc
файл ../gradle-foo_1.0-1_amd64.changes копировать в директорию
/usr/local/gradle-repo/config/mini-dinstall/incoming/
Как я понял, эта тема
Debusine — «PPA для Debian», теперь в реальности
никакого отношения ко мне не имеет,
потому что я не разработчик Debian
(и не хочу им быть, это зашквар - быть причисленным к англоговорящим,
и покорно-субмиссивно регистрироваться среди них.
Проситутке какой может и норм, но я не из этих.)