ArcH Linux ReposItory MANager
Go to file
2021-04-07 01:19:13 +03:00
.github update changelog at correct step 2021-04-05 02:22:11 +03:00
package Move search line inside extended report option 2021-04-06 17:03:34 +03:00
src/ahriman add status route 2021-04-07 01:19:13 +03:00
tests add status route 2021-04-07 01:19:13 +03:00
.gitignore initial import 2021-03-05 01:45:36 +03:00
.pylintrc add pylint integration & fix some pylint warnings 2021-03-19 05:07:41 +03:00
AUTHORS more templates 2021-03-29 00:13:20 +03:00
CONFIGURING.md add ability to skip email report generation for empty update list 2021-04-06 05:51:50 +03:00
COPYING uploader demo 2021-03-05 04:10:29 +03:00
Makefile Email report (#11) 2021-04-06 05:45:17 +03:00
README.md drop changelog 2021-04-05 02:27:12 +03:00
setup.cfg 100% coverage 2021-04-03 21:30:57 +03:00
setup.py try to integrate with github workflows 2021-03-28 23:13:42 +03:00

ArcHlinux ReposItory MANager

build status

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 with makepkg.conf overrides if required (at least you might want to set PACKAGER):

    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 previous pacman-{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
    
  • Start and enable ahriman@.timer via systemctl:

    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.