Snapcraft 是一个用于 Linux 系统上的打包、分发与更新工具,由于绑定了依赖项,所以不需要修改就可以在所有主要 Linux 系统上运行。目前 Snapcraft 7.0 已正式发布,更新内容如下:
支持 core22
在引入 craft-parts 之后,对 core22 的支持进入了一个新的周期。主要有以下变更:
- 添加 craftctl 工具替换 snapcraftctl
- 在步骤执行期间定义 CRAFT_* 环境变量,替换 SNAPCRAFT_* 变量。
- 在 snapcraft.yaml 中使用重复键时出错。
- 不再支持根级构建包
- Snapcraft 现在使用全局环境关键字而不是命令链(允许轻松覆盖)
请查阅迁移指南获取更多信息。
构建提供者
随着转向 craft-providers,Snapcraft 现在默认使用 LXD 作为构建环境。
使用外部生成的凭据存储操作
Snapcraft 已迁移到使用 craft-store,因此身份验证机制也发生了变化,主要影响了那些与 CI/CD 集成的人。snapcraft login --with 命令结构不再受支持, export login 的值需要导出到相应的环境变量中(比如 SNAPCRAFT_STORE_CREDENTIALS)。
新版本缺少的功能
注意,7.0 版本缺少如下功能,如有需要,请先不要升级:
- 架构关键字支持
- 自动经典快照构建支持(ORIGIN 路径和链接器加载程序设置)
- 插件:ROS, crystal, qmake
- 一些源代码处理程序:7zip、mercurial、bazaar、deb、rpm
- 用户定义的插件支持
更多内容可在更新公告中查阅。