You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**APG (APG Package)** — собственный формат пакетов для операционной системы NurOS, разработанный для обеспечения быстрой установки, полной поддержки зависимостей и простоты создания пакетов.
6
6
7
-
**APG (Advanced Package)** — рекурсивный акроним, расшифровывающийся как "APG Package". Это собственный формат пакетов для операционной системы NurOS, разработанный для обеспечения быстрой установки, полной поддержки зависимостей и простоты создания пакетов.
7
+
APG был создан командой NurOS как альтернатива существующим форматам пакетов с целью обеспечить:
8
8
9
-
### История создания
9
+
- Простоту в понимании и использовании
10
+
- Полный контроль над процессом установки
11
+
- Поддержку современных возможностей управления пакетами
12
+
- Легкую расширяемость для будущих нужд
10
13
11
-
APG был разработан командой NurOS как альтернатива существующим форматам пакетов. Целью было создание формата, который:
12
-
13
-
* Прост в понимании и использовании
14
-
* Обеспечивает полный контроль над процессом установки
15
-
* Поддерживает современные возможности управления пакетами
16
-
* Легко расширяется для будущих нужд
17
-
18
-
### Текущая версия
19
-
20
-
**APGv2** — текущая версия формата, используемая в NurOS.
14
+
**Текущая версия**: APGv2
21
15
22
16
## Основные принципы
23
17
24
18
### Простота
25
19
26
20
APG использует стандартные форматы и инструменты:
27
21
28
-
***Архив**: tar с сжатием (xz, zst)
29
-
***Метаданные**: JSON формат
30
-
***Скрипты**: обычные shell-скрипты
31
-
***Контрольные суммы**: MD5
22
+
-**Архив**: tar с сжатием (xz, zst)
23
+
-**Метаданные**: JSON формат
24
+
-**Скрипты**: обычные shell-скрипты
25
+
-**Контрольные суммы**: CRC32 или MD5 (на выбор)
32
26
33
27
### Прозрачность
34
28
@@ -44,177 +38,63 @@ tar -xf package.apg
44
38
45
39
### Расширяемость
46
40
47
-
Формат позволяет:
48
-
49
-
* Добавлять новые поля в метаданные без нарушения совместимости
50
-
* Использовать пользовательские скрипты установки
51
-
* Поддерживать множественные архитектуры
52
-
53
-
## Компоненты экосистемы APG
54
-
55
-
### Формат пакетов
41
+
Формат позволяет добавлять новые поля в метаданные без нарушения совместимости, использовать пользовательские скрипты установки и поддерживать множественные архитектуры.
56
42
57
-
Базовая спецификация формата `.apg` файлов.
43
+
## Компоненты экосистемы
58
44
59
-
### Инструменты
60
-
61
-
| Инструмент | Назначение |
62
-
|------------|------------|
45
+
| Компонент | Описание |
46
+
|-----------|----------|
47
+
|**Формат пакетов**| Базовая спецификация формата `.apg` файлов |
63
48
|**Tulpar**| Пакетный менеджер для установки и управления пакетами |
64
49
|**apgbuild**| Утилита для создания пакетов |
65
50
|**Tulpar Server**| Сервер для распространения пакетов |
66
51
|**libapg**| Библиотека для работы с APG пакетами |
|`source`| Исходный код для компиляции на целевой системе | Исходники программ, патчи |
59
+
|`misc`| Прочие файлы, не являющиеся программами | Темы оформления, шрифты, документация, данные |
128
60
129
61
## Поддерживаемые архитектуры
130
62
131
-
APG поддерживает следующие архитектуры процессоров:
132
-
133
63
| Архитектура | Описание | Статус |
134
64
|-------------|----------|--------|
135
65
|`x86_64`| 64-битные процессоры AMD/Intel | ✅ Полная поддержка |
136
66
|`aarch64`| 64-битные процессоры ARM | ✅ Полная поддержка |
137
67
|`riscv64`| 64-битные процессоры RISC-V | ✅ Полная поддержка |
138
68
|`all`| Архитектурно-независимые пакеты | ✅ Полная поддержка |
139
69
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
+
## Преимущества формата
173
71
174
-
| Характеристика | APG | RPM |
175
-
|----------------|-----|-----|
176
-
| Формат | tar.xz/tar.zst | cpio + rpm |
177
-
| Метаданные | JSON | Spec файлы |
178
-
| Сложность | Простой | Высокая |
179
-
| База данных | JSON файлы | Berkeley DB |
180
-
| Подпись | Планируется | GPG |
72
+
### Для пользователей
181
73
182
-
### APG vs PKG (Arch)
74
+
Быстрая установка благодаря оптимизированной распаковке архивов и минимальным проверкам. Надежность обеспечивается проверкой контрольных сумм, управлением зависимостями и откатом при ошибках. Прозрачность достигается за счет видимости всех файлов пакета, понятных метаданных и логирования установки.
183
75
184
-
| Характеристика | APG | PKG |
185
-
|----------------|-----|-----|
186
-
| Формат | tar.xz/tar.zst | tar.xz/tar.zst |
187
-
| Метаданные | JSON | .PKGINFO |
188
-
| Сложность | Простой | Простой |
189
-
| Сборка | apgbuild | makepkg |
190
-
| Философия | Похожие подходы | Похожие подходы |
76
+
### Для разработчиков
191
77
192
-
## Лицензия и открытость
78
+
Простота создания пакетов обеспечивается автоматизацией через apgbuild, простой структурой директорий и минимумом требований. Гибкость проявляется в возможности использовать пользовательские скрипты, поддерживать любые архитектуры и расширять метаданные. Совместимость достигается работой на любой Linux-системе, использованием стандартных инструментов и открытым форматом.
193
79
194
-
###Лицензирование
80
+
## Лицензирование
195
81
196
82
Формат APG и все связанные инструменты распространяются под свободными лицензиями:
197
83
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 |
204
90
205
-
APG является открытым стандартом:
206
-
207
-
* Полная спецификация доступна публично
208
-
* Возможность создания альтернативных реализаций
209
-
* Приветствуется обратная связь и предложения
91
+
APG является открытым стандартом с публично доступной спецификацией, возможностью создания альтернативных реализаций и приветствием обратной связи.
0 commit comments