Розробники операційної системи
pkgar не претендує на універсальність і оптимізований з урахуванням специфіки операційної системи Redox OS. Пакетним менеджером підтримується верифікація джерела цифрового підпису та контроль цілісності. Контрольні суми розраховуються за допомогою хеш-функції
Файл із заголовком містить окремі контрольні суми для заголовка та структур із параметрами з файлу даних, а також цифровий підпис для перевірки пакета. Файл з даними включає послідовне перерахування всіх файлів та каталогів, які постачаються в пакеті. Перед кожним елементом даних наводиться структура з метаданими, які включають контрольну суму для самих даних, розмір, права доступу, відносний шлях файлу, що встановлюється, і зміщення параметрів наступного елемента даних. Якщо в процесі оновлення окремі файли не змінилися і контрольна сума збігається, вони пропускаються і не завантажуються.
Перевірити цілісність джерела можна отримавши лише заголовний файл, а коректність вибраного файлу з даними - завантаживши лише структури з параметрами цього файлу і впевнившись у відповідності контрольній сумі, завіреній в заголовному файлі. Безпосередньо самі дані можна перевірити після їх завантаження, використовуючи контрольну суму структури з параметрами, що йде перед даними.
Пакети спочатку мають на увазі можливість повторюваної збірки, що передбачає те, що створення пакета для певного каталогу завжди призводить до формування ідентичного пакета. Після установки в системі зберігаються лише метадані, яких достатньо для реконструкції пакета із встановлених даних (склад пакета, контрольні суми, шляхи та права доступу є в метаданих).
Основні цілі pkgar:
- Атомарність – оновлення застосовуються по можливості автоматично.
- Економія трафіку - дані передаються по мережі тільки при зміні хеша (при оновленні завантажуються тільки файли, що змінилися).
- Висока продуктивність, задіяні швидкі криптографічні алгоритми (blake3 підтримує розпаралелювання обробки даних при обчисленні хешу). Якщо дані з репозиторію не були прокешовані раніше хеш для завантажених даних може бути обчислений під час завантаження.
- Мінімалістичність – на відміну від інших форматів, pkgar включає тільки метадані, необхідні для вилучення пакета.
- Незалежність від каталогу установки – пакет може бути встановлений у будь-який каталог, будь-яким користувачем (користувач повинен мати право на запис у вибраний каталог).
- Безпека - пакети завжди криптографічно верифікуються, а верифікація виконується до здійснення фактичних операцій з пакетом (спочатку завантажується заголовок і якщо цифровий підпис вірний, у тимчасовий каталог завантажуються дані, які переміщуються в цільовий каталог після верифікації).
Джерело: opennet.ru