![Ubuntu-Image 无法构建映像](https://linux22.com/image/1199570/Ubuntu-Image%20%E6%97%A0%E6%B3%95%E6%9E%84%E5%BB%BA%E6%98%A0%E5%83%8F.png)
我正在使用 Ubuntu-Image 为 ubuntu 构建一个图像,其中包含几个快照,如下所示: https://ubuntu.com/core/docs/using-ubuntu-image
一段时间以来,我一直能够顺利地构建图像,但今天突然之间,我的所有图像(包括未经修改的图像)的构建过程都失败了。
时间戳已注入且有效,已删除此帖子的授权 ID。断言已正确创建。
这是我的 JSON 示例
{
"type": "model",
"series": "16",
"authority-id": "**********",
"brand-id": "**********",
"model": "ubuntu-core-20-pi-arm64",
"architecture": "arm64",
"timestamp": "%TIMESTAMP%",
"base": "core20",
"grade": "dangerous",
"system-user-authority": [
"**********"
],
"snaps": [
{
"name": "tot-pi",
"type": "gadget"
},
{
"name": "bare",
"type": "base",
"default-channel": "latest/stable",
"id": "EISPgh06mRh1vordZY9OZ34QHdd7OrdR"
},
{
"name": "pi-kernel",
"type": "kernel",
"default-channel": "20/stable",
"id": "jeIuP6tfFrvAdic8DMWqHmoaoukAPNbJ"
},
{
"name": "core20",
"type": "base",
"default-channel": "latest/stable",
"id": "DLqre5XGLbDqg9jPtiAhRRjDuPVa5X1q"
},
{
"name": "core",
"type": "core",
"default-channel": "latest/stable",
"id": "99T7MUlRhtI3U0QFgl5mXXESAiSwt776"
},
{
"name": "snapd",
"type": "snapd",
"default-channel": "latest/stable",
"id": "PMrrV4ml8uWuEUDBT8dSGnKUYbevVhc4"
},
{
"name": "ubuntu-frame",
"type": "app",
"default-channel": "latest/stable",
"id": "BPZbvWzvoMTrpec4goCXlckLe2IhfthK"
},
{
"name": "mesa-core20",
"type": "app",
"default-channel": "latest/stable",
"id": "pDDsAW9ifzZnogboHJu3udsA6LsbGeGP"
},
{
"name": "gnome-3-38-2004",
"type": "app",
"default-channel": "latest/stable",
"id": "rw36mkAjdIKl13dzfwyxP87cejpyIcct"
},
{
"name": "gtk-common-themes",
"type": "app",
"default-channel": "latest/stable",
"id": "jZLfBRzf1cYlYysIjD2bwSzNtngY0qit"
},
{
"name": "network-manager",
"type": "app",
"default-channel": "20/stable",
"id": "RmBXKl6HO6YOC2DE4G2q1JzWImC04EUy"
}
]
}
我使用以下命令在完成其他步骤后生成图像来对模型进行签名。
ubuntu-image snap ubuntu-core-20-pi-arm64.model --snap pi_20-1_arm64.snap --snap wpe-webkit-mir-kiosk -o $OUTPUT_PATH/$FILE_NAME
一切正常,直到出现以下错误:
Fetching snapd (20674)
Fetching network-manager (865)
Fetching pi-kernel (732)
Fetching core20 (2107)
Fetching bare (5)
Fetching core (16204)
Fetching ubuntu-frame (5795)
Fetching mesa-core20 (154)
Fetching gnome-3-38-2004 (145)
Fetching gtk-common-themes (1535)
Fetching wpe-webkit-mir-kiosk (101)
error: prerequisites need to be added explicitly: cannot use snap "ubuntu-frame": default provider "mesa-core20" or any alternative provider for content "" is missing
如果我删除了 ubuntu 框架,我会在下一个快照中遇到相同的错误,并且删除该快照会导致另一个错误,直到没有剩余的快照。直到今天,这个模型和脚本已经运行了一年多,有些甚至没有任何变化。
任何帮助都将不胜感激。这件事突然开始,也许我无意中在某个地方做了更改,或者 ubuntu-image 或最近构建的一个或多个 snap 出现故障或问题。我在这里陷入了困境,任何帮助都将不胜感激。
答案1
经过一番调查和检查产生错误的源代码,并检查安装的版本后,我发现我是从 apt 安装的 ubuntu-image(如果您运行了apt install ubuntu-image
等等)。
Apt 版本已经很久没有更新了,所以检查了 snap 版本后发现是在上周更新的。
为了解决这个问题,我卸载了 apt 版本,并安装了 snap 版本:
sudo apt remove ubuntu-image
sudo snap install ubuntu-image
就这样,一切开始运转了。我不得不修改脚本,将 -o 参数大写为 -O,这是一个好兆头。
-O 的行为现在也不同了,期望它将 .img 文件输出为小工具快照中指定的卷名,而不是使用 -O 传入的文件名,它将创建一个具有确切名称的文件夹(在我的情况下为 ubuntu.img/pi.img)
昨晚一夜没睡,但问题解决了。希望这篇文章以后对大家有用。:)