Foi lançada a versão 4.0.0 do projeto Aura, que desenvolve um gerenciador de pacotes para a distribuição Arch Linux, ampliando as funcionalidades do gerenciador de pacotes padrão Pacman. O projeto foi criado em 2012 e inicialmente tinha como objetivo fornecer ferramentas para a construção de pacotes para o repositório AUR (Arch User Repository), utilizado para a distribuição de pacotes de desenvolvedores terceiros que não estão incluídos nos repositórios principais da distribuição Arch Linux. O código do projeto é distribuído sob a licença GPLv3.
Além das funções específicas do AUR, o Aura também oferece outras possibilidades que expandem a funcionalidade do Pacman (atualmente, apenas 1/3 das funcionalidades ampliadas do Aura estão relacionadas ao AUR). Por exemplo, estão disponíveis ferramentas para análise visual de dependências, gerenciamento de instantâneas de conjuntos de pacotes (para salvar e restaurar estados), gerenciamento de dependências residuais e retrocesso de pacotes individuais ou de todo o sistema para versões anteriores.
O gerenciador de pacotes Aura é totalmente compatível com o Pacman e suporta todos os seus comandos e opções (o Aura pode ser usado como um substituto do Pacman com funcionalidades ampliadas). As funcionalidades adicionais relacionadas ao AUR são acionadas através da especificação da opção de linha de comando "-A", enquanto as ferramentas de gerenciamento de instantâneas e versões são acionadas através das opções "-B" e "-C", que não se sobrepõem às opções do Pacman. Também são oferecidos comandos adicionais, como "check", "conf", "free", "stats" e "deps" para verificar a integridade do sistema, trabalhar com configurações, analisar licenças, visualizar estatísticas e analisar dependências.
A funcionalidade do Pacman é recriada através do uso da biblioteca libalpm, que oferece as funcionalidades básicas de gerenciamento de pacotes aplicadas no gerenciador de pacotes Pacman. O projeto também mantém um próprio servidor com metadados de pacotes, permitindo acelerar significativamente a busca por pacotes e a resolução de dependências.
A nova versão se destaca pela reescrita completa da base de código, que foi transferida da linguagem Haskell para a linguagem Rust. A troca de linguagem permitiu aumentar significativamente o desempenho, simplificar a instalação, utilizar bindings prontos do Rust para a libalpm, tornar o projeto mais atraente para novos desenvolvedores, melhorar a interface de linha de comando e reduzir em 4 vezes o tamanho do arquivo executável.
Foi adicionada a comando "aura deps", permitindo gerar imagens com uma representação clara das dependências. Por exemplo, para visualizar os pacotes que dependem do gcc, você pode executar "aura deps gcc --reverse --optional --open", e para ver os pacotes dos quais gcc depende — "aura deps gcc --limit=3 --open":


Fonte: opennet.ru
