安装后 Snap 无法执行

安装后 Snap 无法执行

通过使用,sudo mount -t squashfs -o ro ./fingrom.snap ./tmp我能够在里面运行该应用程序。但如果从 Discover 安装,则“运行”按钮不起作用。如何解决?提前致谢!

它是通过使用以下方式从 Flutter 项目生成的snapcraft

name: fingrom
base: core22
version: 1.0.0+1

grade: stable
confinement: strict

apps:
  fingrom:
    command: fingrom

parts:
  app-finance:
    source: .
    plugin: flutter
    build-packages: [libgtk-3-dev, ninja-build]
    flutter-target: lib/main.dart

在此处输入图片描述

$ snap run Fingrom
error: cannot find current revision for snap Fingrom: readlink /snap/Fingrom/current: no such file or directory
$ snap run fingrom
error: cannot find app "fingrom" in "fingrom"

非常感谢您的帮助。


更新 其中snapcraft.yaml缺少的是:

apps:
  fingrom:
    command: fingrom

添加该部分后,错误更改为:error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory。不清楚,因为我可以从其文件夹手动运行它:/snap/fingrom/current/。

答案1

缺失libgtk-3.so.0是因为您没有stage-packages提及。您至少需要:

parts:
  app-finance:
    source: .
    plugin: flutter
    build-packages: [libgtk-3-dev, ninja-build]
    flutter-target: lib/main.dart
    stage-packages: [libgtk-3-0]

当您以其他方式运行可执行文件(请参阅我上面的评论)时,您将绕过 snap 限制,并且它可能会在您的主机上找到 libgtk3。您需要将应用程序所需的库捆绑在 snap 中。

然而,更好、更简单的选择是使用扩展gnome

apps:
  fingrom:
    command: fingrom
    extensions: [gnome]

这在文档

相关内容