#arch-linux #local-file #cli #config-file #aur-helper #repository-mgmt

app repman

repman 帮助管理 Arch Linux 软件包的自定义仓库

2 个版本

0.7.8 2024年4月1日
0.7.2 2024年1月1日

#918命令行工具

Download history 1/week @ 2024-05-23

每月 59 次下载

GPL-3.0-or-later

160KB
3K SLoC

REUSE status Crates.io

Repman

自定义仓库 是个人 Arch Linux 仓库,可以包含来自 Arch Linux 用户仓库 (AUR) 或其他软件包(例如本地软件包,其中 PKGBUILD 文件 存储在本地文件系统中)。repman (REPository MANager) 帮助管理它们,无论是本地还是远程。

repman 替代了 crema,后者已停止开发,并增加了新功能。它可以在 x86_64/AMD64 和 AArch64/ARM64 上运行,因此可以管理这些架构的仓库。

自定义仓库的一些用例

  • 在安装 Arch Linux 时,您想安装 AUR 软件包。因此,这些软件包必须由仓库提供。
  • 您想使用自定义 元软件包 使 Arch Linux 安装更高效
  • 您想将软件包自动部署到仓库,作为 CI/CD 管道的一部分
  • 您在本地网络中的多台机器上运行 Arch Linux,并希望从您本地网络中的自定义仓库为它们提供软件包/软件包更新

特性

repman 支持不同存储位置的仓库(查看 可选依赖项

它可以用于以下任务

  • 添加(这包括构建)软件包
  • 删除软件包
  • 更新软件包

repman 的一个非常重要的目标是使本地系统(即用于管理自定义仓库的系统)尽可能干净。因此,默认情况下,软件包通过 chroot 容器通过 makechrootpkg 构建。

安装

AUR

repman支持AUR包:repmanrepman-git。可以使用AUR helperstrizen进行安装。这些包可以通过nerdstuff仓库以二进制形式获得。

从源代码手动安装

另一种选择是手动安装。为此执行

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

Docker

存在针对x86_64和AArch64架构的包含repman的Docker镜像。这些镜像可以用于CI管道等。要下载最新镜像,请执行

$ docker pull mipimipi/repman:latest

可选依赖

根据repman的使用方式和目的,可能需要一些额外的依赖项

  • 要处理AUR中的包,需要git
  • 要签名包或仓库数据库,需要GnuPG
  • 要管理远程仓库,根据服务器类型/对服务器的访问,需要特定的工具
  • 如果使用分布式构建,需要distcc

配置

repman需要有关仓库的信息,例如名称和(远程)路径。这存储在配置文件中$XDG_CONFIG_HOME/repman/repos.conf,格式为TOML。有关详细信息,请参阅repman的man页

用法

执行repman help以获取有关如何调用repman的信息。repman的man页包含全面的文档:$ man repman

故障排除

请参阅repman的man页中的故障排除章节

详细信息

repman使用makechrootpkgmakepkgrepo-add和repo-remove等工具。使用rsync或特定供应商的工具(如s3cmdgsutil)在远程位置和本地文件系统之间传输仓库。使用上述工具操作本地副本。

许可

GNU公共许可证v3.0

依赖项

~14–34MB
~517K SLoC