如何在隔离环境中构建快照?

mur*_*uru 5 packaging pbuilder snap

在构建 Debian 软件包时,pbuilder(和类似工具)有助于在隔离环境中构建软件包,因此我系统中的奇怪设置不会导致构建问题:

pbuilder 旨在成为一个易于设置的系统,用于在洁净室环境中自动构建 Debian 软件包,以便可以验证一个软件包是否可以在大多数 Debian 安装上构建。洁净室环境是通过使用基本 chroot 映像实现的,因此 chroot 中只会安装最少的软件包。

有 snapcraft 的等价物吗?


上下文:我只是在为 Cassandra构建快照时遇到了一些语言环境问题。我一直遇到语言环境错误,我懒得去查看,并且在构建过程中,javadoc由于某些文件中的 Unicode 字符而失败。使用C.UTF-8作为语言环境修复了:

export LC_ALL=C.UTF-8
snapcraft
Run Code Online (Sandbox Code Playgroud)

但是,我的语言环境不应该影响构建软件包、snappy 或 Debian。像 pbuilder 这样的东西在这里会很有用。

pop*_*pey 7

你当然可以。snapcraft有一个“ cleanbuild”选项,它可以(默认)在 lxd 容器内本地构建,也可以远程(通过--remote选项)构建。

所以:-

构建本地 lxd(需要lxd安装包,以及LXD 的网络设置):

snapcraft cleanbuild
Run Code Online (Sandbox Code Playgroud)

构建远程 lxd:

snapcraft cleanbuild --remote remotemachine
Run Code Online (Sandbox Code Playgroud)

我按照本指南在我的家庭服务器上设置远程构建。效果很好!