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