Структура пакета APGv2
APG (Advanced Package) — формат пакетов для NurOS. Пакет представляет собой tar-архив с дополнительным сжатием (например, .tar.xz, .tar.zst).
Структура архива
package.apg
├── metadata.json # Метаданные пакета (обязательно)
├── md5sums # MD5 контрольные суммы (обязательно, или crc32sums)
├── crc32sums # CRC32 контрольные суммы (альтернатива md5sums)
├── data/ # Файлы для установки в / (обязательно)
│ ├── usr/
│ │ ├── bin/
│ │ └── lib/
│ └── etc/
├── scripts/ # Скрипты установки (опционально)
│ ├── pre-install
│ ├── post-install
│ ├── pre-remove
│ └── post-remove
└── home/ # Файлы для $HOME (опционально)
└── .config/
Компоненты пакета
| Компонент | Описание | Обязательный |
|---|---|---|
metadata.json | Информация о пакете: имя, версия, зависимости | Да |
md5sums или crc32sums | Контрольные суммы всех файлов пакета | Да (один из них) |
data/ | Файлы, устанавливаемые в корень файловой системы / | Да |
scripts/ | Скрипты pre/post install/remove | Нет |
home/ | Файлы, устанавливаемые в домашний каталог $HOME | Нет |
Подробнее о компонентах
metadata.json
Содержит всю информацию о пакете в формате JSON. Подробнее см. Файл metadata.json.
md5sums / crc32sums
Текстовый файл с контрольными суммами всех файлов пакета. Пакет должен содержать один из этих файлов.
Формат md5sums:
d41d8cd98f00b204e9800998ecf8427e data/usr/bin/example
e99a18c428cb38d5f260853678922e03 data/etc/example.conf
Формат crc32sums:
a1b2c3d4 data/usr/bin/example
e5f6a7b8 data/etc/example.conf
- MD5: Более надежная проверка целостности, стандарт для большинства пакетов
- CRC32: Быстрая проверка, подходит для больших пакетов где важна скорость
data/
Каталог с файлами, которые будут распакованы в корень системы /. Структура внутри data/ повторяет структуру файловой системы.
scripts/
Каталог со скриптами, выполняемыми при установке/удалении:
| Скрипт | Когда выполняется |
|---|---|
pre-install | Перед распаковкой файлов |
post-install | После распаковки файлов |
pre-remove | Перед удалением файлов |
post-remove | После удаления файлов |
home/
Каталог с файлами для домашнего каталога пользователя. Работает аналогично data/, но относительно $HOME.
Используйте home/ для конфигурационных файлов пользователя, таких как .bashrc, .config/ и т.д.
Дополнительная информация
Полная спецификация формата APG доступна в репозитории apg-docs.