mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 15:27:17 +00:00
ArcH Linux ReposItory MANager
* block issues without templates * add setup subcommand * handle devtools config correctly |
||
---|---|---|
.github | ||
package | ||
src/ahriman | ||
tests | ||
.gitignore | ||
.pylintrc | ||
AUTHORS | ||
CONFIGURING.md | ||
COPYING | ||
Makefile | ||
README.md | ||
setup.cfg | ||
setup.py |
ArcHlinux ReposItory MANager
Wrapper for managing custom repository inspired by repo-scripts.
Features
- Install-configure-forget manager for own repository
- Multi-architecture support
- VCS packages support
- Sign support with gpg (repository, package, per package settings)
- Synchronization to remote services (rsync, s3) and report generation (html)
- Dependency manager
- Repository status interface
Installation and run
-
Install package as usual.
-
Change settings if required, see CONFIGURING for more details.
-
Create
/var/lib/ahriman/.makepkg.conf
withmakepkg.conf
overrides if required (at least you might want to setPACKAGER
):echo 'PACKAGER="John Doe <john@doe.com>"' | sudo -u ahriman tee -a /var/lib/ahriman/.makepkg.conf
-
Configure build tools (it is required for correct dependency management system):
- create build command, e.g.
ln -s /usr/bin/archbuild /usr/local/bin/ahriman-x86_64-build
(you can choose any name for command, basically it should be{name}-{arch}-build
); - create configuration file, e.g.
cp /usr/share/devtools/pacman-{extra,ahriman}.conf
(same as previouspacman-{name}.conf
); - change configuration file, add your own repository, add multilib repository etc;
- set
build_command
option to point to your command; - configure
/etc/sudoers.d/ahriman
to allow running command without a password.
ln -s /usr/bin/archbuild /usr/local/bin/ahriman-x86_64-build cp /usr/share/devtools/pacman-{extra,ahriman}.conf echo '[multilib]' | tee -a /usr/share/devtools/pacman-ahriman.conf echo 'Include = /etc/pacman.d/mirrorlist' | tee -a /usr/share/devtools/pacman-ahriman.conf echo '[aur-clone]' | tee -a /usr/share/devtools/pacman-ahriman.conf echo 'SigLevel = Optional TrustAll' | tee -a /usr/share/devtools/pacman-ahriman.conf echo 'Server = file:///var/lib/ahriman/repository/$arch' | tee -a /usr/share/devtools/pacman-ahriman.conf echo '[build]' | tee -a /etc/ahriman.ini.d/build.ini echo 'build_command = ahriman-x86_64-build' | tee -a /etc/ahriman.ini.d/build.ini echo 'Cmnd_Alias CARCHBUILD_CMD = /usr/local/bin/ahriman-x86_64-build *' | tee -a /etc/sudoers.d/ahriman echo 'ahriman ALL=(ALL) NOPASSWD: CARCHBUILD_CMD' | tee -a /etc/sudoers.d/ahriman chmod 400 /etc/sudoers.d/ahriman
- create build command, e.g.
-
Start and enable
ahriman@.timer
viasystemctl
:systemctl enable --now ahriman@x86_64.timer
-
Start and enable status page:
systemctl enable --now ahriman-web@x86_64
-
Add packages by using
ahriman add {package}
command:sudo -u ahriman ahriman -a x86_64 add yay
Note that initial service configuration can be done by running ahriman setup
with specific arguments.