ArcH Linux ReposItory MANager
Go to file
Evgeniy Alekseev 912a76d5cb drop changelog
the main reason is that it uses github to generate changelog. Thus it
will be updated AFTER release is created
2021-04-05 02:27:12 +03:00
.github update changelog at correct step 2021-04-05 02:22:11 +03:00
package Release 0.21.3 2021-04-05 02:22:44 +03:00
src/ahriman Release 0.21.3 2021-04-05 02:22:44 +03:00
tests implicit type conversion from command line 2021-04-04 23:53:30 +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 change arch specific section naming from section_arch to section:arch 2021-03-31 02:31:14 +03:00
COPYING uploader demo 2021-03-05 04:10:29 +03:00
Makefile drop changelog 2021-04-05 02:27:12 +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.