snapcraft构建snap包提示Failed to pull source源拉取失败
报错根因
snapcraft 解析source字段的相对路径时,基准是你执行snapcraft命令的项目根目录(即包含snap子文件夹的一级目录),不是snapcraft.yaml所在的snap子目录。
你现在的my-app.zip实际存放在snap/local/路径下,但配置里写的./local/my-app.zip会让程序去项目根目录下找local文件夹,路径不匹配自然拉取失败。
解决办法
两种方案选一个即可:
- 方案一:修改
snapcraft.yaml的source配置,改成对应项目根目录的正确相对路径:
parts: my-part: source: "snap/local/my-app.zip" plugin: dump
改完切回项目根目录(snap文件夹的上一级)执行snapcraft即可正常构建。
- 方案二:把存放压缩包的
local文件夹从snap目录下移到项目根目录,和snap文件夹同级,原有配置不用改动,直接在根目录跑构建命令就行。
排查补充
如果改完路径还是报错,在项目根目录执行下面的命令确认文件权限正常:
ls -l snap/local/my-app.zip
输出能看到文件信息、当前用户具备r读权限就没有权限问题。
内容的提问来源于stack exchange,提问作者Salihu Dickson
相关产品推荐
相关产品推荐

