You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 23.10下创建Snap包失败求助

问题

首次尝试在Ubuntu 23.10中打包自主开发的应用为Snap包,按官方指南创建了lamiavideoteca/usr/bin存放可执行文件、lamiavideoteca/usr/lib存放依赖库,编写的snapcraft.yaml配置如下:

name: lamiavideoteca
base: core22
version: "2.40"
summary: Program for cataloging Films
description: Program that allows you to catalog your collection of Films and/or Video/Audio.
grade: stable
confinement: strict

apps:
   lamiavideoteca:
     command: MyVideo Library

parts:
   lamiavideoteca:
     plugin: dump
     source: .
     organize:
       bin/: usr/bin/
       lib/: usr/lib/

执行snapcraft编译时失败,日志提示路径“LaMiaVideoteca”不存在,无法打包/root/prime目录。已在干净Ubuntu虚拟机验证依赖齐全,手动创建/root/prime和/root/project目录后问题仍未解决。

解决方法
  • 修正command字段的路径与格式:
    可执行文件名带空格时,必须用引号包裹绝对路径。如果你的可执行文件实际位于snap的usr/bin/目录下,正确的command应为:

    command: usr/bin/"MyVideo Library"
    

    另外日志提示“LaMiaVideoteca”不存在,需确认可执行文件的实际名称是否为LaMiaVideoteca(Linux环境大小写敏感),如果是,直接将command改为usr/bin/LaMiaVideoteca。

  • 匹配文件结构与source配置:
    当前配置中source: .表示打包当前目录的所有内容,但你的可执行文件和依赖在lamiavideoteca/usr/bin/、lamiavideoteca/usr/lib/子目录下,这会导致snapcraft将lamiavideoteca/目录本身复制到prime目录,最终路径变为lamiavideoteca/usr/bin/xxx,而非预期的usr/bin/xxx。
    解决方式二选一:

    1. 将source改为lamiavideoteca/,让dump插件直接读取该子目录下的usr/结构;
    2. 调整本地文件结构,将usr/bin/和usr/lib/直接放在当前目录下,保持source: .不变。
  • 删除手动创建的临时目录:
    snapcraft会自动管理打包过程中的/root/prime、/root/project等临时目录,手动创建这些目录会干扰正常流程,删除后重新执行snapcraft即可。

内容的提问来源于stack exchange,提问作者Enrico Tarro Boiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:53:33