The release of project Aura 4.0.0 has been introduced, which develops a package manager for the Arch Linux distribution, enhancing the capabilities of the default package manager, Pacman. The project was created in 2012 and was initially aimed at providing tools for building packages for the AUR (Arch User Repository), used for distributing third-party developers' packages not included in the main Arch Linux repositories. The project's code is distributed under the GPLv3 license.
In addition to AUR-specific functions, Aura also offers other features that expand Pacman's functionality (currently only 1/3 of Aura's extended capabilities are related to AUR). For instance, it provides tools for visualizing dependencies, managing snapshots of package sets (for saving and restoring states), handling residual dependencies, and rolling back individual packages or the entire system to previous versions.
The Aura package manager is fully backward compatible with Pacman and supports all its commands and options (Aura can be used as a replacement for Pacman with extended features). AUR-related additional features are triggered by specifying the command line option "-A", while snapshot and version management tools are accessed via the options "-B" and "-C", which do not overlap with Pacman's options. Additional commands such as "check", "conf", "free", "stats", and "deps" are also offered for system integrity checks, configuration management, license analysis, statistics viewing, and dependency parsing.
Pacman's functionality is recreated through the use of the libalpm library, which provides the basic package management capabilities utilized in the Pacman package manager. The project also supports its own server package metadata, which significantly speeds up the package search and dependency resolution.
The new version is notable for a complete rewrite of the codebase, which has been transitioned from Haskell to Rust. This language change has allowed for significantly improved performance, simplified installation, made use of ready-made Rust bindings to libalpm, made the project more appealing to new developers, improved the command-line interface, and reduced the executable file size by four times.
The command "aura deps" has been added, allowing for the generation of images that clearly display dependencies. For instance, to view packages dependent on gcc, you can execute "aura deps gcc --reverse --optional --open", and to view packages that gcc depends on — "aura deps gcc --limit=3 --open":


Source: opennet.ru
