2 个版本
0.7.8 | 2024年4月1日 |
---|---|
0.7.2 | 2024年1月1日 |
#918 在 命令行工具
每月 59 次下载
160KB
3K SLoC
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 支持不同存储位置的仓库(查看 可选依赖项)
- 本地文件系统
- 可通过 SSH 访问的远程服务器
- AWS S3
- Google Cloud Storage
它可以用于以下任务
- 添加(这包括构建)软件包
- 删除软件包
- 更新软件包
repman 的一个非常重要的目标是使本地系统(即用于管理自定义仓库的系统)尽可能干净。因此,默认情况下,软件包通过 chroot 容器通过 makechrootpkg 构建。
安装
从 AUR
repman支持AUR包:repman和repman-git。可以使用AUR helpers如trizen进行安装。这些包可以通过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
- 要管理远程仓库,根据服务器类型/对服务器的访问,需要特定的工具
- 通过SSH访问需要rsync和OpenSSH
- AWS S3需要s3cmd(适用于x86_64,适用于AArch64)
- Google Cloud Storage需要google-cloud-cli
- 如果使用分布式构建,需要distcc
配置
repman需要有关仓库的信息,例如名称和(远程)路径。这存储在配置文件中$XDG_CONFIG_HOME/repman/repos.conf,格式为TOML。有关详细信息,请参阅repman的man页。
用法
执行repman help
以获取有关如何调用repman的信息。repman的man页包含全面的文档:$ man repman
故障排除
详细信息
repman使用makechrootpkg、makepkg、repo-add和repo-remove等工具。使用rsync或特定供应商的工具(如s3cmd或gsutil)在远程位置和本地文件系统之间传输仓库。使用上述工具操作本地副本。
许可
依赖项
~14–34MB
~517K SLoC