Обзор Tulpar
Общие сведения
Что такое Tulpar?
Tulpar — это высокоуровневый пакетный менеджер для операционной системы NurOS, предназначенный для работы с форматом пакетов APG. Написан на языке C и предоставляет удобные инструменты для установки, обновления и управления программным обеспечением.
Этимология названия
Тулпар (каз. Tulpar) — в тюркской мифологии крылатый конь, символизирующий скорость и надежность. Название отражает философию пакетного менеджера: быстрая и надежная доставка программного обеспечения.
Архитектура
Компоненты системы
┌─────────────────────────────────────────┐
│ Интерфейс командной строки │
│ (tulpar CLI) │
└──────────────┬──────────────────────────┘
│
┌───────▼────────┐
│ libapg │ ← Библиотека работы с APG
│ (ядро) │
└───────┬────────┘
│
┌───────────┼────────────┐
│ │ │
┌──▼──────┐ ┌─▼────────┐ ┌─▼──────┐
│Установка│ │Зависимости│ │ База │
│ пакетов │ │ │ │данных │
└─────────┘ └──────────┘ └────────┘
Основные возможности
-
Управление пакетами
- Установка пакетов
- Удаление пакетов
- Обновление пакетов
- Поиск пакетов
-
Управление зависимостями
- Автоматическое разрешение зависимостей
- Проверка конфликтов
- Обработка виртуальных пакетов (provides)
- Замена пакетов (replaces)
-
Работа с репозиториями
- Синхронизация с удаленными репозиториями
- Поддержка множественных источников
- Кэширование метаданных
- Проверка целостности
-
База данных пакетов
- Учет установленных пакетов
- История операций
- Список файлов каждого пакета
- Метаданные установленных пакетов
Технические характеристики
Требования к системе
- Операционная система: Linux (NurOS или другие дистрибутивы)
- Архитектура: x86_64, aarch64, riscv64
- Зависимости:
- libc (glibc или musl)
- libarchive (для работы с архивами)
- libcurl (для загрузки пакетов)
- nlohmann/json (для парсинга JSON)
Технологии
- Язык программирования: C (C11)
- Система сборки: meson & ninja
- Формат базы данных: JSON файлы
- Сетевой протокол: HTTP/HTTPS
Преимущества
Для пользователей
-
Простота использования
- Понятный интерфейс командной строки
- Автоматическое разрешение зависимостей
- Подробные сообщения об ошибках
-
Надежность
- Проверка контрольных сумм
- Транзакционная установка
- Откат при ошибках
-
Скорость
- Быстрая установка пакетов
- Эффективное кэширование
- Параллельная загрузка
Для системных администраторов
-
Управляемость
- Полный контроль над установленными пакетами
- История операций
- Простая интеграция в скрипты
-
Гибкость
- Настройка репозиториев
- Конфигурируемые параметры
- Поддержка локальных пакетов
Сравнение с другими менеджерами
Tulpar vs apt (Debian/Ubuntu)
| Характеристика | Tulpar | apt |
|---|---|---|
| Формат пакетов | APG | DEB |
| Зависимости | Простые | Сложные |
| Скорость | Высокая | Средняя |
| База данных | JSON | dpkg DB |
| Конфигурация | Простая | Сложная |
Tulpar vs pacman (Arch Linux)
| Характеристика | Tulpar | pacman |
|---|---|---|
| Формат пакетов | APG | PKG.tar.zst |
| Философия | Похожая | Похожая |
| Скорость | Высокая | Высокая |
| База данных | JSON | Текстовые файлы |
| AUR аналог | Планируется | AUR |
Tulpar vs dnf (Fedora)
| Характеристика | Tulpar | dnf |
|---|---|---|
| Формат пакетов | APG | RPM |
| Зависимости | Простые | Очень сложные |
| Скорость | Высокая | Низкая |
| Память | Низкое потребление | Высокое потребление |
Компоненты
tulpar (CLI)
Интерфейс командной строки для управления пакетами.
Основные команды:
tulpar install <пакет> # Установка
tulpar remove <пакет> # Удаление
tulpar update # Обновление базы
tulpar upgrade # Обновление пакетов
tulpar search <запрос> # Поиск
libapg
Библиотека для работы с пакетами APG.
Возможности:
- Чтение и запись APG пакетов
- Парсинг метаданных
- Проверка контрольных сумм
- Управление зависимостями
Использование в других проектах:
#include <libapg/package.h>
apg_package_t *pkg = apg_package_open("package.apg");
apg_metadata_t *metadata = apg_package_get_metadata(pkg);
apg_package_install(pkg, "/");
apg_package_close(pkg);
База данных пакетов
Расположение
- Установленные пакеты:
/var/lib/apg/installed/ - Локальный кэш:
/var/cache/apg/packages/ - Конфигурация:
/etc/apg/tulpar.conf
Структура базы данных
/var/lib/apg/
├── installed/
│ ├── firefox-120.0-1/
│ │ ├── metadata.json # Метаданные пакета
│ │ ├── files.list # Список установленных файлов
│ │ └── install-date # Время установки
│ └── vim-9.0-1/
│ ├── metadata.json
│ ├── files.list
│ └── install-date
└── cache/
└── repositories/
└── official.json # Метаданные репозитория
Информация о проекте
- Автор: NurOS Developers
- Лицензия: GNU GPL 3.0
- Язык: C (C11)
- Репозиторий: https://github.com/NurOS-Linux/Tulpar
- Документация: https://docs.nuros.org
Дальнейшее чтение
Поддержка
- Трекер задач: https://github.com/NurOS-Linux/Tulpar/issues
- Обсуждения: https://github.com/NurOS-Linux/Tulpar/discussions