mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
the main reason is that it uses github to generate changelog. Thus it will be updated AFTER release is created
3.0 KiB
3.0 KiB
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 --now
Note that initial service configuration can be done by running ahriman setup
with specific arguments.