Перейти к основному содержимому

Структура пакета 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.