Athena OS leverages on several repositories for accessing to security tools and learning resources in a comfortable manner. They are:
- Athena repository for new tools or packages not stored in other existing repositories
- BlackArch repository for retrieving all the security tools
- Chaotic repository for accessing to the AUR packages directly by pacman
- Arch Linux repositories for system and utility packages
These repositories are set in
/etc/pacman.conf. Here you can choose to add more repositories or remove the existing ones. Each time you edit this file by adding or removing repositories, run
sudo pacman -Syy to synchronize the database.
The structure of the Athena OS repository package source is public and available for any contribution.
The source files of each single package is inside the
packages directory. Each package has
PKGBUILD file for defining the
.pkg.tar.zst package rules and
build.sh is used for automating this process by generating the new
.pkg.tar.zst, signing it, moving it and its signature to
x86_64 folder and delete all the temporary files.
When all packages are built, they are moved to the actual Athena Repository and
update-database.sh must be run for calling
update_repo.sh script in order to update the
athena.db* files with the new built packages with
.pkg.tar.zst extension stored in
The declaration of Athena repository is defined inside
In Athena, the repository keys and related files,
chaotic-revoked files are stored in
athena.gpg file is the public key needed to be imported in order to access to Athena repository,
athena-trusted contains the keys to trust, and
athena-revoked contains the list of revoked keys in long format.
This operation is managed by Calamares installer that will initialize all the keys stored in
Athena repository automates the update of its packages, indeed, mostly for git packages, when a developer updates its tool, the implemented automation is able to detect it, update the package and deploy it to the repository. This automated check runs periodically.
It has been implemented by a GitHub Actions workflow that contains a bash script for checking all directories containing a PKGBUILD file and running the build script inside each package source.
If you wish to use Athena repository in a different operating system, you can do this by adding the following to your /etc/pacman.conf:
Get the mirrorlist file by running:
On the terminal, execute:
Finally, trust the imported key by: