我刚刚发布了我的第一个 snap (mathjump) 该软件包是在 x86 系统上构建的。有没有办法为其他架构上传同一软件包名称下的不同修订版本。我假设我的 x86 snap 在其他架构上无法正常工作,但也许我错了。
答案1
是的,您可以上传商店支持的任何架构的软件包(amd64、i386、armhf、arm64,甚至 ppc64el 和 s390x 也可以)。唯一的要求是您必须能够实际构建这些架构的 snap(除非您的 snap 全部是 shell 脚本或类似地非架构特定)。您可以通过几种不同的方式做到这一点:
在具有所需架构的设备(或模拟设备)上构建您的 snap。如果您的 snap 是闭源的,并且您希望完全控制其构建过程,那么这确实是唯一的方法。
在(免费提供的)Launchpad snap builders 上构建您的 snap:将包含您的项目提交
snapcraft.yaml
到 Launchpad 并选择您想要支持的架构,它会为您构建(甚至上传到商店)您的 snap。您可以阅读更多相关信息这里。
任何一种解决方案都会生成一个 snap,你可以将它与你已上传的针对其他架构的修订版本一起提交到商店。它将获得自己的修订编号,等等。
答案2
在里面
snapcraft.yaml
文件,您可以添加行architectures: [all]
description: |
This is the description.
architectures: [all]
apps: ...
all
您的快照现在将以单词结尾的形式创建。
snap名称_版本_all.snap
这表明 snap 本身可以在所有架构上安装。(不确定是否可以正常工作)。