Представлен выпуск проекта Aura 4.0.0, развивающего пакетный менеджер для дистрибутива Arch Linux, расширяющий возможности штатного пакетного менеджера Pacman. Проект создан в 2012 году и изначально был нацелен на предоставление средств для сборки пакетов для репозитория AUR (Arch User Repository), применяемого для распространения сторонними разработчиками своих пакетов, не входящих в основные репозитории дистрибутива Arch Linux. Код проекта распространяется под лицензией GPLv3.
Кроме специфичных для AUR функций в Aura также предоставляются и другие возможности, расширяющие функциональность Pacman (в настоящее время только 1/3 расширенных возможностей Aura связаны с AUR). Например, доступны средства для наглядного анализа зависимостей, работы со снапшотами наборов пакетов (для сохранения и восстановления состояния), управления остаточными зависимостями и отката отдельных пакетов или всей системы на прошлые версии.
Пакетный менеджер Aura полностью обратно совместим с Pacman и поддерживает все его команды и опции (Aura можно использовать как замену Pacman с расширенными функциями). Связанные с AUR дополнительные возможности вызываются через указание опции командной строки “-A”, а средства работы со снапшотами и версиями через опции “-B” и “-С”, не пересекающиеся с опциями Pacman. Также предлагаются такие дополнительные команды, как “check”, “conf”, “free”, “stats” и “deps” для проверки целостности системы, работы с конфигурацией, анализа лицензий, просмотра статистики и разбора зависимостей.
Функциональность Pacman воссоздаётся благодаря использованию библиотеки libalpm, предлагающей базовые возможности управления пакетами, применяемые в пакетном менеджере Pacman. Проектом также поддерживается собственный сервер с метаданными пакетов, позволяющий существенно ускорить поиск пакетов и разрешение зависимостей.
Новая версия примечательна полным переписыванием кодовой базы, которая переведена с использования языка Haskell на язык Rust. Смена языка позволила значительно повысить производительность, упростить установку, задействовать готовые Rust-биндинги к libalpm, сделать проект более привлекательным для новых разработчиков, улучшить интерфейс командной строки и в 4 раза сократить размер исполняемого файла.
Добавлена команда “aura deps”, позволяющая генерировать изображения с наглядным представлением зависимостей. Например, для просмотра пакетов, зависящих от gcc, можно выполнить “aura deps gcc –reverse –optional –open”, а для просмотра пакетов, от которых зависит gcc – “aura deps gcc –limit=3 –open”: