Файл metadata.json

Файл metadata.json содержит метаданные пакета APG и используется менеджером пакетов Tulpar для управления установкой, зависимостями и конфликтами.

Пример файла

{
    "name": "apgexample",
    "version": "0.0.0",
    "type": "misc",
    "architecture": null,
    "description": "The APG example package for NurOS (Tulpar).",
    "maintainer": "NurOS Developers",
    "license": null,
    "tags": [
        "example",
        "test",
        "apg"
    ],
    "homepage": "https://nuros.org",
    "dependencies": [],
    "conflicts": [
        "testapg"
    ],
    "provides": [],
    "replaces": [
        "example-apg"
    ],
    "conf": [
        "/etc/example.conf",
        "$HOME/exmplrc"
    ]
}

Описание полей

Основные поля

ПолеТипОписаниеПример
namestringУникальное имя пакета"firefox"
versionstringВерсия пакета"1.2.3"
typestringТип пакета"binary", "source", "misc"
architecturestring | nullЦелевая архитектура"x86_64", "aarch64", "riscv64", "all", null
descriptionstringКраткое описание пакета"Веб-браузер"

Информация о разработке

ПолеТипОписаниеПример
maintainerstringСопровождающий пакета"Ivan Petrov <ivan@example.com>"
licensestring | nullЛицензия"MIT", "GPL-3.0", "Apache-2.0"
homepagestringURL проекта"https://example.com"
tagsarrayТеги для поиска["browser", "web", "internet"]

Зависимости и конфликты

ПолеТипОписаниеПример
dependenciesarrayСписок зависимостей["glibc", "openssl >= 1.1"]
conflictsarrayКонфликтующие пакеты["chromium"]
providesarrayВиртуальные пакеты, которые предоставляет данный пакет["www-browser"]
replacesarrayПакеты, которые заменяет данный["old-firefox"]

Конфигурация

ПолеТипОписаниеПример
confarrayФайлы конфигурации, которые не перезаписываются при обновлении["/etc/app.conf", "$HOME/.apprc"]

Типы пакетов

ТипОписание
binaryСкомпилированные бинарные файлы
sourceИсходный код для компиляции
miscПрочее (данные, документация, темы и т.д.)

Архитектуры

ЗначениеОписание
x86_6464-битные процессоры AMD/Intel
aarch6464-битные процессоры ARM
riscv6464-битные процессоры RISC-V
allАрхитектурно-независимый пакет
nullАрхитектура не определена

Формат зависимостей

Зависимости могут указываться с версионными ограничениями:

"dependencies": [
    "glibc",              // любая версия
    "openssl >= 1.1",     // версия 1.1 или выше
    "libpng < 2.0",       // версия ниже 2.0
    "zlib == 1.2.11"      // точная версия
]

Информация

Поля license и architecture могут быть null, но рекомендуется указывать корректные значения для лучшей совместимости.

Внимание

Убедитесь, что список зависимостей корректен. Неправильные зависимости могут привести к ошибкам при установке пакета. :::