制作跨平台AppImage包的方法
AppImage 是一种跨平台的软件打包格式,旨在简化 Linux 系统中软件的分发和运行。它允许开发者将应用程序及其所有依赖项打包为一个独立的可执行文件(.AppImage 后缀),用户无需安装或管理员权限即可直接运行。
关于如何制作AppImage的教程,网上已经有很多了,本文就不就此展开。本文专门说一下如何制作跨平台AppImage包。
众所周知,现在很多应用程序并不是在PC上运行的,因此制作各种平台上的AppImage的需求越来越多,而且越来越多的应用程序支持在多个平台上运行,这就更是增加了制作多平台AppImage的需求。
对于只在单平台上运行的应用来说,不论是IA32平台还是ARM平台,只要在开发平台上编译,制作安装包就好。而对多平台软件来说,在每个平台上编译和制作包很麻烦,不适合自动化开发流程。所以就需要实现跨平台交叉编译和跨平台制作安装包,以便于自动化生成。在开发Visual LVM的过程中我们就遇到了这个问题。在搜索了AppImage各种文档之后,找到了解决方案。
目前来说,AppImage支持x86/x86_64/armhf/arm64这4个平台。
要跨平台制作应用程序的AppImage包,首先需要下载AppImage制作工具appimagetool。
四个平台对应的AppImageTool的下载地址是
https://github.com/AppImage/appimagetool/releases
开发者需要下载开发平台对应的版本,最常用的是appimagetool-x86_64.AppImage。
然后需要下载各平台对应的运行库,下载地址是:
https://github.com/AppImage/type2-runtime/releases
以下就以在x86_64平台制作arm64平台的AppImage为例说明如何跨平台制作AppImage包。
在拷贝好应用需要的相关文件和启动脚本AppRun之后。
执行命令
export ARCH=aarch64;export PLATFORM=x86_64;appimagetool-$PLATFORM.AppImage --runtime-file=runtime-$ARCH appimage appname_$ARCH.AppImage
即可生成arm64平台的AppImage包,名字为appname_aarch64.AppImage
这里解释一下上述命令:
ARCH是appimagetool需要的参数,用于指定生成的目标平台,可选值是x86_64|i686|armhf|aarch64。
PLATFORM用于指定appimagetool运行的平台,可选值同样是上述4种。
要生成不同平台的包或者在不同平台上生成包,只需要修改ARCH和PLATFORM的内容就可以实现。
下面就可以在对应的目标平台上测试生成的AppImage包了。