Хочешь упаковать свой скрипт, бинарник или мини-сервис в .deb, не лезя в dh-make и ручное правописание changelog? Делается это всего за пару минут с bash-автоматизацией.
▪️ Структура проекта. Пример для утилиты mytool:
mytool/
├── usr/
│ └── local/
│ └── bin/
│ └── mytool
└── DEBIAN/
└── control
▪️ DEBIAN/control (пример)
Package: mytool
Version: 1.0.0
Section: utils
Priority: optional
Architecture: all
Maintainer: You <admin@bashtex.ru>
Description: Утилита для всего
▪️ Генерация changelog из git
generate_changelog() {
git log -n 10 --pretty=" * %s (%h)" > changelog.txt
echo "mytool (1.0.0) stable; urgency=low" | cat - changelog.txt > DEBIAN/changelog
rm changelog.txt
}
▪️ Сборка .deb
build_deb() {
chmod -R 755 mytool/DEBIAN
dpkg-deb --build mytool
}
▪️ Автоматизация в bash
#!/bin/bash
set -e
PKG_DIR="mytool"
VERSION="1.0.0"
PKG_NAME="mytool_${VERSION}.deb"
generate_changelog() {
git log -n 10 --pretty=" * %s (%h)" > "$PKG_DIR/DEBIAN/changelog"
}
build_deb() {
chmod -R 755 "$PKG_DIR/DEBIAN"
dpkg-deb --build "$PKG_DIR" "$PKG_NAME"
echo "Пакет создан: $PKG_NAME"
}
generate_changelog
build_deb
Теперь можно установить пакет через
dpkg -i mytool_1.0.0.deb, а в /usr/local/bin/ появится твой скрипт.BashTex 📱 #bash #utils