#arch-linux #amazon-s3 #cli #config-file #google-cloud #aur-helper #repository-mgmt

app repman

repman helps to manage custom repositories for Arch Linux packages

2 releases

0.7.8 Apr 1, 2024
0.7.2 Jan 1, 2024

#132 in Command line utilities

Download history 2/week @ 2023-12-30 1/week @ 2024-02-17 12/week @ 2024-02-24 9/week @ 2024-03-02 2/week @ 2024-03-09 154/week @ 2024-03-30 8/week @ 2024-04-06

162 downloads per month

GPL-3.0-or-later

160KB
3K SLoC

REUSE status Crates.io

Repman

Custom repositories are personal Arch Linux repositories that can contain packages from the Arch Linux user repository (AUR) or other packages (local packages, for example, where the PKGBUILD file is stored in the local file system). repman (REPository MANager) helps to manage them, whether they are local or remote.

repman replaces crema which is no longer under development and adds new features. It can run on x86_64/AMD64 and AArch64/ARM64 and thus can manage repositories for these architectures.

Some use cases for custom repositories:

  • During the installation of Arch Linux you want to pacstrap AUR packages. Therefore, these packages must be provided by a repository.
  • You want to use self-defined meta packages to make an Arch Linux installation more efficient
  • You want to deploy your packages to a repository automatically as part of a CI/CD pipeline
  • You are running Arch Linux on multiple machines in your local network and want to provide all of them with packages / package updates from a custom repository in your local network

Features

repman supports different storage locations for repositories (check Optional dependencies):

It can be used for the following tasks:

  • Adding (this includes also building) packages
  • Removing packages
  • Updating packages

A very important goal of repman is to keep the local system - i.e., the system that is used to manage custom repositories - as clean as possible. Therefore, packages are built in chroot containers via makechrootpkg per default.

Installation

From AUR

There are AUR packages for repman: repman and repman-git. They can be installed with AUR helpers such as trizen. These packages are available as binaries via the nerdstuff repository.

Manually from Sources

Another option is a manual installation. For this execute:

$ git clone https://gitlab.com/mipimipi/repman.git
$ cd repman
$ make
$ sudo make install

Docker

There are Docker images for x86_64 and AArch64 architectures that contain repman. These images can be used in CI pipelines, for example. To download the latest image execute:

$ docker pull mipimipi/repman:latest

Optional dependencies

Depending on what repman is used for and how, some additional dependencies are required:

  • To handle packages from AUR, git is required
  • To sign packages or repository databases, GnuPG is required
  • To manage remote repositories, depending on the type of the server/the access to the server, specific tools are required:
  • In case distributed builds are used, distcc is required

Configuration

repman requires information about the repositories, such as name and (remote) path. This is stored in the configuration file $XDG_CONFIG_HOME/repman/repos.conf in TOML format. See repman’s man page for details.

Usage

Execute repman help to get information about how to call repman. repman’s man page contains comprehensive documentation: $ man repman

Troubeshooting

See the troubleshooting chapter in repman’s man page.

Details

repman utilizes tools like makechrootpkg, makepkg, repo-add, and repo-remove. rsync, or vendor-specific tools such as s3cmd or gsutil are used to transfer repositories between remote locations and the local file system. The local copies are manipulated with the above-mentioned tools.

License

GNU Public License v3.0

Dependencies

~15–34MB
~546K SLoC