APM 1.3.0 带来了大家期待已久的 Addons 扩展层功能,这是一次从"打包灵活"到"使用灵活"的关键跨越。
在过去,APM 已经通过全自动转换器 amber-pm-convert 和多层依赖机制,让打包过程变得足够灵活。但在实际使用中,我们遇到了一个新的问题:
amber-pm-convert
开发环境的需求千差万别,如何在保持精简的同时满足个性化?
不同的开发者需要不同的工具链:Java、Python、DTK、Git、CMake……如果在构建每个包的时候就直接把开发环境打包进 base,势必造成严重的存储浪费——毕竟并不是每个用户都需要这些环境。
也许有人会说:"用 override_layer (详见) 不就好了?"
override_layer
确实可以,但 override_layer 是在 APP侧配置的。这意味着开发环境只能和具体的软件包绑定——一个 IDE 就要配一套开发环境。对于拥有多个开发工具的用户来说,硬盘的处境可想而知:
💾 硬盘:想想就刺激。
APM 1.3.0 引入了 Addons 扩展层,将环境扩展的能力从"应用侧"转移到了 base 侧(以及中间层)。
只要在 base 侧安装 addons 包,所有运行在这个 base 上的应用都会自动获得该扩展——无需逐个配置,无需重复安装。
info
entries/
┌─────────────────────────────────┐ │ APP: Firefox | ├─────────────────────────────────┤ │ amber-pm-bookworm │ │ ┌───────────────────────────┐ │ │ │ Addons: ffmpeg-addons │ │ │ └───────────────────────────┘ │ └─────────────────────────────────┘
Firefox 运行在 amber-pm-bookworm base 上,admin 只需安装 ffmpeg-addons,所有基于 bookworm 的应用都会自动获得 ffmpeg 支持。
amber-pm-bookworm
ffmpeg-addons
┌─────────────────────────────────────────┐ │ APP: Trae AI IDE │ ├─────────────────────────────────────────┤ │ amber-pm-bookworm-dev(中间层) │ │ ┌─────────┐ ┌────────┐ ┌───────┐ │ │ │git-addon│ │cmake- │ │java- │ │ │ │ s │ │addons │ │addons │ │ │ └─────────┘ └────────┘ └───────┘ │ ├─────────────────────────────────────────┤ │ amber-pm-bookworm(base) │ └─────────────────────────────────────────┘
Trae AI IDE 的 base 指向 amber-pm-bookworm-dev 中间层,该中间层挂载了 git、cmake、java 等 addons。普通应用仍然使用原版 amber-pm-bookworm,不会加载开发环境。即使 addons 之间有冲突,也可以通过不同的中间层来隔离。
amber-pm-bookworm-dev
Addons 不仅能挂载在 base 上,还能挂载在中间层上。这意味着你可以:
这样,普通应用仍然使用原版 base,只有开发类应用才会获取到开发环境。即使 addons 互相冲突,也可以通过中间层来隔离。
APM Addons 秉承了 APM 一贯的新手友好设计。你不需要手动创建目录、编写配置文件,只需要一条命令:
用法: amber-pm-addons-maker --base [--manual] [--pkgname <包名>] [--version <版本>] [deb文件路径] 参数说明: --base 必填参数,指定基础环境名称 --manual 启用手动模式:融合挂载后打开交互 shell --pkgname 可选参数,指定包名(建议格式:-<描述>-addons) --version 可选参数,指定版本号(默认 1.0.0-apm) deb文件路径 可选参数,要安装到 addons 环境中的 Deb 文件
适合需要自定义安装、配置环境的场景:
amber-pm-addons-maker --base amber-pm-bookworm --manual --pkgname amber-pm-bookworm-git-addons
执行后会自动挂载目标 base 并进入交互式 shell,你可以像操作普通 Debian 环境一样:
apt update apt install git git-lfs exit
退出后工具会自动打包,生成的 deb 安装后即可在对应 base 上生效。
适合已经有现成 deb 包的场景,一键完成:
amber-pm-addons-maker --base amber-pm-trixie ./nvidia-driver.deb --pkgname amber-pm-trixie-nvidia-addons
# 先分别创建各个 addons amber-pm-addons-maker --base amber-pm-bookworm --manual --pkgname amber-pm-bookworm-git-addons amber-pm-addons-maker --base amber-pm-bookworm --manual --pkgname amber-pm-bookworm-cmake-addons amber-pm-addons-maker --base amber-pm-bookworm --manual --pkgname amber-pm-bookworm-java-addons # 然后创建一个 dev-base 中间层(通过 amber-pm-convert 或手动打包) # 将上述 addons 注册到 dev-base 的 info_layer_addons.d/ 中
安装后的 addons 包会自动在对应 base 的 info_layer_addons.d/ 中注册,所有依赖该 base 的应用下次启动时即可自动加载,无需任何额外配置。
info_layer_addons.d/
-<描述>-addons
amber-pm-bookworm-nvidia-addons
优先级-addons包名
info_layer_override
一次安装,全局复用;按需组合,灵活隔离。
APM 1.3.0 的 Addons 功能,让环境管理真正做到了"随需而变"。感谢每一位用户的反馈与建议,APM 会持续向更灵活、更友好的方向进化。
立即体验 APM 1.3.0:
https://amber-pm.spark-app.store/
这篇帖子AI味太冲了。。。
用AI多了之后实在是懒得自己写了....我写的没他写的好
简而言之就是在部分情况下,用户在使用容器内的软件的时候还是希望能兼顾直接安装到主机时的灵活性,想要添加一些补充的包上去,我就设计了Addons 包,对base进行修改
Featured Collection
Popular Ranking
Popular Events
APM 1.3.0 正式发布 —— Addons 扩展层:让环境随需而变
引言
APM 1.3.0 带来了大家期待已久的 Addons 扩展层功能,这是一次从"打包灵活"到"使用灵活"的关键跨越。
在过去,APM 已经通过全自动转换器
amber-pm-convert和多层依赖机制,让打包过程变得足够灵活。但在实际使用中,我们遇到了一个新的问题:曾经的困境
不同的开发者需要不同的工具链:Java、Python、DTK、Git、CMake……如果在构建每个包的时候就直接把开发环境打包进 base,势必造成严重的存储浪费——毕竟并不是每个用户都需要这些环境。
也许有人会说:"用
override_layer(详见) 不就好了?"确实可以,但
override_layer是在 APP侧配置的。这意味着开发环境只能和具体的软件包绑定——一个 IDE 就要配一套开发环境。对于拥有多个开发工具的用户来说,硬盘的处境可想而知:APM 1.3.0 的解决方案:Addons 扩展层
APM 1.3.0 引入了 Addons 扩展层,将环境扩展的能力从"应用侧"转移到了 base 侧(以及中间层)。
只要在 base 侧安装 addons 包,所有运行在这个 base 上的应用都会自动获得该扩展——无需逐个配置,无需重复安装。
核心理念
info文件和entries/目录,极轻量架构图
普通应用(以 Firefox 为例)
Firefox 运行在
amber-pm-bookwormbase 上,admin 只需安装ffmpeg-addons,所有基于 bookworm 的应用都会自动获得 ffmpeg 支持。开发应用(以 Trae AI IDE 为例)
Trae AI IDE 的 base 指向
amber-pm-bookworm-dev中间层,该中间层挂载了 git、cmake、java 等 addons。普通应用仍然使用原版amber-pm-bookworm,不会加载开发环境。即使 addons 之间有冲突,也可以通过不同的中间层来隔离。addons 不止 base 能用
Addons 不仅能挂载在 base 上,还能挂载在中间层上。这意味着你可以:
amber-pm-bookworm-dev中间层amber-pm-bookworm-dev这样,普通应用仍然使用原版 base,只有开发类应用才会获取到开发环境。即使 addons 互相冲突,也可以通过中间层来隔离。
使用方法
APM Addons 秉承了 APM 一贯的新手友好设计。你不需要手动创建目录、编写配置文件,只需要一条命令:
amber-pm-addons-maker 使用说明
示例 1:手动模式(交互式安装)
适合需要自定义安装、配置环境的场景:
执行后会自动挂载目标 base 并进入交互式 shell,你可以像操作普通 Debian 环境一样:
退出后工具会自动打包,生成的 deb 安装后即可在对应 base 上生效。
示例 2:自动模式(直接安装 deb)
适合已经有现成 deb 包的场景,一键完成:
示例 3:创建开发环境中间层
安装后的 addons 包会自动在对应 base 的
info_layer_addons.d/中注册,所有依赖该 base 的应用下次启动时即可自动加载,无需任何额外配置。技术要点
-<描述>-addons,例如amber-pm-bookworm-nvidia-addonsinfo_layer_addons.d/中创建注册文件info_layer_addons.d/中的文件名格式为优先级-addons包名,数字越小优先级越高info_layer_override完全兼容,协同工作方案对比
总结
APM 1.3.0 的 Addons 功能,让环境管理真正做到了"随需而变"。感谢每一位用户的反馈与建议,APM 会持续向更灵活、更友好的方向进化。
立即体验 APM 1.3.0:
https://amber-pm.spark-app.store/