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