ArcH Linux ReposItory MANager
Go to file
2021-03-21 16:33:04 +03:00
package Release 0.15.0 2021-03-20 18:05:36 +03:00
src/ahriman split functions to handles package (#3) 2021-03-21 16:33:04 +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
CONFIGURING.md add depdendency manager and switch to pyalpm instead of expac 2021-03-12 00:04:37 +03:00
COPYING uploader demo 2021-03-05 04:10:29 +03:00
Makefile split functions to handles package (#3) 2021-03-21 16:33:04 +03:00
README.md some improvements 2021-03-16 04:25:58 +03:00
setup.py better templating 2021-03-13 05:12:53 +03:00

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

    echo 'PACKAGES="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. Hint: you can use Include option as well;
    • 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