ArcH Linux ReposItory MANager
Go to file
Evgeniy Alekseev 880c70bd58 constistent classmethod and staticmethod usage
General idea is to use classmethod for every constructor and
statismethod otherwise.
Also use self and cls whenever it's possible to call static and class
methods
2021-03-31 04:29:08 +03:00
.github Setup command (#9) 2021-03-29 03:24:58 +03:00
package Release 0.19.0 2021-03-31 02:19:44 +03:00
src/ahriman constistent classmethod and staticmethod usage 2021-03-31 04:29:08 +03:00
tests constistent classmethod and staticmethod usage 2021-03-31 04:29:08 +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 make configuration object arch-specific 2021-03-31 00:04:13 +03:00
README.md add now argument to add command 2021-03-31 02:19:13 +03:00
setup.cfg Add tests (#1) (#5) 2021-03-28 15:30:51 +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.