4 个版本
| 0.0.4 | 2020 年 1 月 5 日 | 
|---|---|
| 0.0.3 | 2020 年 1 月 4 日 | 
| 0.0.2 | 2020 年 1 月 4 日 | 
| 0.0.1 | 2019 年 12 月 27 日 | 
在 命令行工具 中排名第 2827
9MB
 1K  SLoC
pkger 📦🐳
利用 Docker 的打包工具。
pkger 的主要目的是自动化在多个操作系统、版本和架构上构建 .rpm 或 .deb(也许未来更多)软件包。
配置
配置文件具有以下结构
images_dir = ""
recipes_dir = ""
output_dir = ""
- images_dir- 存储镜像的目录- 每个镜像是一个目录,包含一个 Dockerfile和与其一起导入的文件
- 镜像名称是目录名称
 
- 每个镜像是一个目录,包含一个 
- recipes_dir- 存储配方文件的目录- 每个配方是一个目录,包含一个 recipe.toml文件和源文件(如果不是远程的)
 
- 每个配方是一个目录,包含一个 
- output_dir- 存储构建好的软件包的目录- 当 pkger完成构建软件包后,它将创建一个目录$output_dir/$os/$ver/,其中它将放置构建的.rpm或.deb软件包。- $os和- $ver在构建过程中从容器中获取
 
 
- 当 
配方
配方分为 3 部分
- 
信息- 构建所需的所有元数据和信息
- pkger将安装- depends中列出的所有依赖项,为每个支持的发行版选择合适的包管理器。
- 此配方将为所有 3 个镜像 centos、fedora、ubuntu_latest构建。
- pkger将在- $images_dir/centos等处查找镜像目录。
 
[info]
name = "curl"
description = "curl"
arch = "x86_64"
license = "null"
version = "7.67.0"
revision = "0"
source = "curl-7.67.0.tar.gz"
depends = ["gcc", "make", "patch", "binutils", "strace"]
exclude = ["share", "info"]
provides = ["curl"]
images = [
	"centos",
	"fedora",
	"ubuntu_latest",
]
- 
构建- 所有构建步骤以字符串列表的形式展示
 
[build]
steps = [
	"./curl-7.67.0/configure --prefix=/opt/curl/7.67.0",
	"make"
]
- 
安装- 所有安装步骤以字符串列表的形式展示
- destdir是安装文件的目录。所有- build和- install的步骤都必须在- destdir中生成构建文件,然后将其归档并构建成软件包。
 
[install]
steps = ["make install"]
destdir = "/opt/curl/7.67.0"
用法
要安装 pkger,请运行 cargo install pkger 或使用 crago build --release 克隆并构建此仓库。
要使用 pkger,您需要一个在 tcp 端口上运行的 docker 守护进程。之后运行
- pkger-d$docker_address -c$config_file [RECIPES]
- 将 $docker_address替换为类似http://0.0.0.0:2376的地址
- 将 $config_file替换为配置文件的路径
- 在末尾添加任意数量的食谱,空格分隔
要获取一些信息输出,请使用设置了环境变量 RUST_LOG=pkger=trace
示例
示例配置、食谱和文件结构可以在 master 分支的 example 目录中找到
许可证
依赖关系
~17–30MB
~433K SLoC