Files

69 lines
2.9 KiB
Plaintext
Raw Permalink Normal View History

2026-03-23 01:15:59 +03:00
# Как собрать Debian пакет nginx-mod-rewrite
## Программа для сборки пакета
Для сборки Debian/Ubuntu пакетов используется инструмент **`dpkg-buildpackage`**.
```bash
cd /home/alexey/projects/workspace-zed/test1/packages/deb
dpkg-buildpackage -us -uc
```
Альтернативные команды:
- `debbuild` или `debuild` - обёртки для dpkg-buildpackage
- `fakeroot debian/rules binary` - ручной запуск сборки (для опытных пользователей)
## Зависимости для сборки
Перед сборкой установите необходимые пакеты:
```bash
sudo apt install debhelper-compat dh-autoreconf nginx build-essential
```
## Процесс сборки
1. `dpkg-buildpackage` запускает debian/rules правила
2. `dh` (debhelper) автоматически выполняет стандартные этапы: configure, build, install
3. Ваш скрипт package_preparer.sh скачивает исходный код nginx и компилирует модуль
4. Скрипты postinst/postrm обрабатывают установку/удаление в системе
## Результат
После успешной сборки будет создан `.deb` файл:
- `nginx-mod-rewrite_0.1-1_amd64.deb` - пакет для установки
## Установка пакета
```bash
sudo dpkg -i nginx-mod-rewrite_0.1-1_amd64.deb
```
## Структура файлов в Debian пакете
| Путь | Описание |
|------|----------|
| `debian/control` | Метаданные пакета (имя, версия, зависимости) |
| `debian/changelog` | История изменений пакета |
| `debian/rules` | Скрипт сборки (makefile-like) |
| `debian/copyright` | Информация об авторских правах и лицензии |
| `debian/postinst` | Пост-скрипт установки (reload nginx после инсталляции) |
| `debian/postrm` | Пост-скрипт удаления (очистка конфига nginx) |
| `debian/triggers` | Триггеры для динамического обновления nginx модулей |
| `modules/mod_rewrite/*` | Исходный код модуля rewrite |
## Отличия от RPM spec
| RPM (`nginx-mod-rewrite.spec`) | Debian (`debian/`) |
|-------------------------------|-------------------|
| `%define`, `%description` | `debian/control` |
| `%prep`, `%build`, `%install` | `debian/rules + dh` |
| `%post`, `%preinst` | `debian/postinst`, `debian/preinst` |
| rpmbuild | dpkg-buildpackage |
## Запуск сборки
```bash
cd /home/alexey/projects/workspace-zed/test1/packages/deb
dpkg-buildpackage -us -uc -A # Не подписываем, не используем чужие ключи, только архитектура