通过使用,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]
这在文档