Skip to content

Commit 8cc38a8

Browse files
authored
docs: unify APG overview, update checksums
1 parent 5a7f79b commit 8cc38a8

1 file changed

Lines changed: 44 additions & 172 deletions

File tree

docs/apg/standart/apgv2/obzor.md

Lines changed: 44 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
11
# Обзор стандарта APG
22

3-
## Общие сведения
3+
## Что такое APG?
44

5-
### Что такое APG?
5+
**APG (APG Package)** — собственный формат пакетов для операционной системы NurOS, разработанный для обеспечения быстрой установки, полной поддержки зависимостей и простоты создания пакетов.
66

7-
**APG (Advanced Package)** — рекурсивный акроним, расшифровывающийся как "APG Package". Это собственный формат пакетов для операционной системы NurOS, разработанный для обеспечения быстрой установки, полной поддержки зависимостей и простоты создания пакетов.
7+
APG был создан командой NurOS как альтернатива существующим форматам пакетов с целью обеспечить:
88

9-
### История создания
9+
- Простоту в понимании и использовании
10+
- Полный контроль над процессом установки
11+
- Поддержку современных возможностей управления пакетами
12+
- Легкую расширяемость для будущих нужд
1013

11-
APG был разработан командой NurOS как альтернатива существующим форматам пакетов. Целью было создание формата, который:
12-
13-
* Прост в понимании и использовании
14-
* Обеспечивает полный контроль над процессом установки
15-
* Поддерживает современные возможности управления пакетами
16-
* Легко расширяется для будущих нужд
17-
18-
### Текущая версия
19-
20-
**APGv2** — текущая версия формата, используемая в NurOS.
14+
**Текущая версия**: APGv2
2115

2216
## Основные принципы
2317

2418
### Простота
2519

2620
APG использует стандартные форматы и инструменты:
2721

28-
* **Архив**: tar с сжатием (xz, zst)
29-
* **Метаданные**: JSON формат
30-
* **Скрипты**: обычные shell-скрипты
31-
* **Контрольные суммы**: MD5
22+
- **Архив**: tar с сжатием (xz, zst)
23+
- **Метаданные**: JSON формат
24+
- **Скрипты**: обычные shell-скрипты
25+
- **Контрольные суммы**: CRC32 или MD5 (на выбор)
3226

3327
### Прозрачность
3428

@@ -44,177 +38,63 @@ tar -xf package.apg
4438

4539
### Расширяемость
4640

47-
Формат позволяет:
48-
49-
* Добавлять новые поля в метаданные без нарушения совместимости
50-
* Использовать пользовательские скрипты установки
51-
* Поддерживать множественные архитектуры
52-
53-
## Компоненты экосистемы APG
54-
55-
### Формат пакетов
41+
Формат позволяет добавлять новые поля в метаданные без нарушения совместимости, использовать пользовательские скрипты установки и поддерживать множественные архитектуры.
5642

57-
Базовая спецификация формата `.apg` файлов.
43+
## Компоненты экосистемы
5844

59-
### Инструменты
60-
61-
| Инструмент | Назначение |
62-
|------------|------------|
45+
| Компонент | Описание |
46+
|-----------|----------|
47+
| **Формат пакетов** | Базовая спецификация формата `.apg` файлов |
6348
| **Tulpar** | Пакетный менеджер для установки и управления пакетами |
6449
| **apgbuild** | Утилита для создания пакетов |
6550
| **Tulpar Server** | Сервер для распространения пакетов |
6651
| **libapg** | Библиотека для работы с APG пакетами |
6752

68-
### Экосистема
69-
70-
```
71-
┌─────────────────────────────────────────┐
72-
│ Пользователь NurOS │
73-
└──────────────┬──────────────────────────┘
74-
75-
┌───────▼────────┐
76-
│ Tulpar │ ← Пакетный менеджер
77-
│ (клиент) │
78-
└───────┬────────┘
79-
80-
┌───────────┼────────────┐
81-
│ │ │
82-
┌──▼──┐ ┌───▼────┐ ┌───▼────────┐
83-
│ APG │ │ Tulpar │ │ libapg │
84-
│файл │ │ Server │ │(библиотека)│
85-
└─────┘ └────────┘ └────────────┘
86-
87-
88-
┌──┴────────┐
89-
│ apgbuild │ ← Создание пакетов
90-
│(сборщик) │
91-
└───────────┘
92-
```
93-
94-
## Преимущества формата
95-
96-
### Для пользователей
97-
98-
1. **Быстрая установка**
99-
* Оптимизированная распаковка архивов
100-
* Минимальные проверки перед установкой
101-
102-
2. **Надежность**
103-
* Проверка контрольных сумм
104-
* Управление зависимостями
105-
* Откат при ошибках
106-
107-
3. **Прозрачность**
108-
* Видимость всех файлов пакета
109-
* Понятные метаданные
110-
* Логирование установки
111-
112-
### Для разработчиков
113-
114-
1. **Простота создания**
115-
* Автоматизация через apgbuild
116-
* Простая структура директорий
117-
* Минимум требований
118-
119-
2. **Гибкость**
120-
* Пользовательские скрипты
121-
* Поддержка любых архитектур
122-
* Расширяемые метаданные
53+
## Типы пакетов
12354

124-
3. **Совместимость**
125-
* Работа на любой Linux-системе
126-
* Стандартные инструменты
127-
* Открытый формат
55+
| Тип | Описание | Примеры |
56+
|-----|----------|---------|
57+
| `binary` | Скомпилированные бинарные файлы, готовые к использованию | Программы, библиотеки, драйверы |
58+
| `source` | Исходный код для компиляции на целевой системе | Исходники программ, патчи |
59+
| `misc` | Прочие файлы, не являющиеся программами | Темы оформления, шрифты, документация, данные |
12860

12961
## Поддерживаемые архитектуры
13062

131-
APG поддерживает следующие архитектуры процессоров:
132-
13363
| Архитектура | Описание | Статус |
13464
|-------------|----------|--------|
13565
| `x86_64` | 64-битные процессоры AMD/Intel | ✅ Полная поддержка |
13666
| `aarch64` | 64-битные процессоры ARM | ✅ Полная поддержка |
13767
| `riscv64` | 64-битные процессоры RISC-V | ✅ Полная поддержка |
13868
| `all` | Архитектурно-независимые пакеты | ✅ Полная поддержка |
13969

140-
## Типы пакетов
141-
142-
### binary
143-
144-
Скомпилированные бинарные файлы, готовые к использованию.
145-
146-
**Примеры**: программы, библиотеки, драйверы
147-
148-
### source
149-
150-
Исходный код для компиляции на целевой системе.
151-
152-
**Примеры**: исходники программ, патчи
153-
154-
### misc
155-
156-
Прочие файлы, не являющиеся программами.
157-
158-
**Примеры**: темы оформления, шрифты, документация, данные
159-
160-
## Сравнение с другими форматами
161-
162-
### APG vs DEB (Debian)
163-
164-
| Характеристика | APG | DEB |
165-
|----------------|-----|-----|
166-
| Формат архива | tar.xz/tar.zst | ar + tar.gz |
167-
| Метаданные | JSON | Control файлы |
168-
| Сложность | Простой | Средняя |
169-
| Скрипты | Bash | Bash (debconf) |
170-
| Зависимости | Простые | Сложные (alternatives) |
171-
172-
### APG vs RPM (Red Hat)
70+
## Преимущества формата
17371

174-
| Характеристика | APG | RPM |
175-
|----------------|-----|-----|
176-
| Формат | tar.xz/tar.zst | cpio + rpm |
177-
| Метаданные | JSON | Spec файлы |
178-
| Сложность | Простой | Высокая |
179-
| База данных | JSON файлы | Berkeley DB |
180-
| Подпись | Планируется | GPG |
72+
### Для пользователей
18173

182-
### APG vs PKG (Arch)
74+
Быстрая установка благодаря оптимизированной распаковке архивов и минимальным проверкам. Надежность обеспечивается проверкой контрольных сумм, управлением зависимостями и откатом при ошибках. Прозрачность достигается за счет видимости всех файлов пакета, понятных метаданных и логирования установки.
18375

184-
| Характеристика | APG | PKG |
185-
|----------------|-----|-----|
186-
| Формат | tar.xz/tar.zst | tar.xz/tar.zst |
187-
| Метаданные | JSON | .PKGINFO |
188-
| Сложность | Простой | Простой |
189-
| Сборка | apgbuild | makepkg |
190-
| Философия | Похожие подходы | Похожие подходы |
76+
### Для разработчиков
19177

192-
## Лицензия и открытость
78+
Простота создания пакетов обеспечивается автоматизацией через apgbuild, простой структурой директорий и минимумом требований. Гибкость проявляется в возможности использовать пользовательские скрипты, поддерживать любые архитектуры и расширять метаданные. Совместимость достигается работой на любой Linux-системе, использованием стандартных инструментов и открытым форматом.
19379

194-
### Лицензирование
80+
## Лицензирование
19581

19682
Формат APG и все связанные инструменты распространяются под свободными лицензиями:
19783

198-
* **Спецификация формата**: Public Domain / CC0
199-
* **Tulpar**: GNU GPL 3.0
200-
* **apgbuild**: GNU GPL 3.0
201-
* **Tulpar Server**: GNU GPL 3.0
202-
203-
### Открытый стандарт
84+
| Компонент | Лицензия |
85+
|-----------|----------|
86+
| Спецификация формата | Public Domain / CC0 |
87+
| Tulpar | GNU GPL 3.0 |
88+
| apgbuild | GNU GPL 3.0 |
89+
| Tulpar Server | GNU GPL 3.0 |
20490

205-
APG является открытым стандартом:
206-
207-
* Полная спецификация доступна публично
208-
* Возможность создания альтернативных реализаций
209-
* Приветствуется обратная связь и предложения
91+
APG является открытым стандартом с публично доступной спецификацией, возможностью создания альтернативных реализаций и приветствием обратной связи.
21092

21193
## Примеры пакетов
21294

21395
### Официальный пример APGv2
21496

215-
Полный рабочий пример пакета в формате APGv2:
216-
217-
📦 **Репозиторий**: https://github.com/NurOS-Linux/APGexample
97+
Полный рабочий пример пакета в формате APGv2 доступен в репозитории: https://github.com/NurOS-Linux/APGexample
21898

21999
```bash
220100
# Клонировать пример
@@ -232,26 +112,18 @@ apgbuild build .
232112

233113
### Пример APGv1 (Legacy)
234114

235-
Для сравнения доступен пример в устаревшем формате APGv1:
236-
237-
📦 **Ветка APGv1**: https://github.com/NurOS-Linux/APGexample/tree/APGv1
115+
Для сравнения доступен пример в устаревшем формате APGv1 в ветке APGv1: https://github.com/NurOS-Linux/APGexample/tree/APGv1
238116

239117
```bash
240118
# Клонировать APGv1 пример
241119
git clone -b APGv1 https://github.com/NurOS-Linux/APGexample
242120
cd APGexample
243121
```
244122

245-
## Дальнейшее чтение
246-
247-
* [Структура пакета APG](./struktura-paketa.md)
248-
* [Файл metadata.json](./fail-metadata.json.md)
249-
250-
## Ссылки
123+
:::info Информация
124+
APG разработан с учетом опыта существующих форматов пакетов и предлагает баланс между простотой и функциональностью.
125+
:::
251126

252-
* **Репозиторий спецификации**: https://github.com/NurOS-Linux/apg-docs
253-
* **Tulpar**: https://github.com/NurOS-Linux/Tulpar
254-
* **apgbuild**: https://github.com/NurOS-Linux/apgbuild
255-
* **Tulpar Server**: https://github.com/NurOS-Linux/tulpar-server
256-
* **Пример пакета APGv2**: https://github.com/NurOS-Linux/APGexample
257-
* **Пример пакета APGv1**: https://github.com/NurOS-Linux/APGexample/tree/APGv1
127+
:::warning Внимание
128+
APGv1 является устаревшим форматом. Для новых пакетов используйте APGv2.
129+
:::

0 commit comments

Comments
 (0)