69 lines
2.9 KiB
Plaintext
69 lines
2.9 KiB
Plaintext
# Как собрать 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 # Не подписываем, не используем чужие ключи, только архитектура
|