TODO:apk

来自 Alpine Linux

TODO: apk

文档

  • 记录当前的 apk 内部结构。
  • 定义 “virtual”、“alternative” 及其正确用法。


替代方案

当多个软件包提供相同的文件或功能时,允许用户选择首选的实现。

可插拔布局

Flat

现有布局,其中大多数二进制文件和库都在通用目录中。只能安装软件包的单个版本,并且只能安装提供给定文件或功能的单个软件包。

/pkg

/pkg/apk-tools/3.0.0
/pkg/apk-tools/2.7.1
/pkg/apk-tools/default -> 3.0.0

每个软件包都安装在自己的版本化目录中,允许同一软件包的不同版本和提供相同文件的多个软件包共存,并根据需要进行选择。

/app

/app/webserver/20170406
/app/webserver/20170514
/app/webserver/production -> 20170406
/app/webserver/testing -> 20170514

一组完整的软件包及其依赖项,用于为应用程序提供一致的部署环境。通常指定每个依赖项的确切版本,并作为一个单元进行更新。

Manifests

apk manifest [-v] (<pkg>|<.apk>)...

生成指定软件包/apk 中包含的文件清单。

当前默认格式为:sumfunc:checksum path

使用 verbose 标志:pkgname: sumfunc:checksum path

建议的规范格式:pkg:arch/pkgname-pkgver mode user:group size timestamp sumfunc:checksum path

TODO 项

  • 定义一个规范的默认 manifest 格式,其中包含所有可用的元数据,并采用可靠的可解析格式。
  • 添加以类似于 “stat” 的方式指定 manifest 格式和字段的功能。
  • 添加以类似于 tar 的方式选择要显示的文件的子集的功能。(例如,“etc/” 或 “lib/*.so”)
  • 添加从文件系统目录结构或路径列表生成 manifest 的功能。
  • (已完成 - kaniini)添加为 .apk 文件以及已安装的软件包生成 manifest 的功能。

.apk 生成器

apk gen --key-file=... --control-dir=... --data-dir=...

从密钥文件和两个文件系统目录生成格式良好的 .apk——一个用于控制部分,另一个用于数据部分。

TODO 项

  • 记录当前的 WIP (kaniini)。
  • 添加使用归档文件作为控制或数据目录的源的功能。
  • 添加使用预生成的 manifest 作为源文件列表和软件包文件元数据提供程序的功能。

pax 归档工具

apk archive list -f file.apk [pattern list...]

apk archive extract -f file.apk [pattern list...]

apk archive create -f file.apk [file list...]

apk archive append -f file.apk [file list...]

用于直接操作 .apk 归档文件的底层工具。

TODO 项

  • 定义正确的 applet 和命令名称。
  • 确定适当的标志。
  • 提供在 STDIN、命令行或外部文件中列出的 include/exclude 文件/模式列表的功能。