如何使用snapcraft为ubuntu核心交叉构建应用程序

我在x86系统上开发了一个Ubuntu Core应用程序,用于带有snapcraft的arm目标。

snapcraft.yaml包含architectures: [armhf]和snapcraft生成.armhf.snap文件。 这似乎没问题。

但是如果一个部件包含使用stage-packages的Ubuntu依赖stage-packages ,则生成的snap只包含x86_64 libs。

怎么解决这个问题?

不幸的是,Snapcraft还不支持交叉构建。 为了为x86构建一个快照,它需要在x86主机上运行; 用于arm,arm主机。

实际上,正如didrocks所提到的,你可以使用Ubuntu Core 16.04上的Classic Dimension直接在Snappy设备上运行Snapcraft。

另请注意,Snappy Ubuntu Core 16.04(仍处于开发阶段)具有经典维度,使您可以直接在设备上构建,因此您不会再遇到跨拱问题。

您还可以安装docker app,并从docker hub从ubuntu映像导入,然后您将获得本机编译的环境。