|
测试你的AppImage
测试AppImage是生成AppImage的非常重要的一步。由于AppImage文件应该在各种Linux发行版上运行,因此在各种发行版上测试AppImage至关重要。
在您要定位的所有基本操作系统上测试您的AppImage!
这是重要的步骤,您不应跳过。分布上的细微差异使这成为必须。尽管在大多数情况下可以创建在各种发行版上运行的AppImage,但这并不是自动完成的,而是需要仔细的手动调整。
为确保AppImage在预期的基本系统上运行,应在每个基本系统上进行彻底的测试。以下测试过程既有效又有效:获得Ubuntu,Fedora和openSUSE Live CD的先前版本,并在其中测试AppImage。使用三个最大的发行版也会增加您的AppImage在其他发行版上运行的机会。使用以前的版本(当前的减号)可以确保您可能尚未升级到最新版本的最终用户仍然可以运行您的AppImage。
使用Live CD的优势在于,与已安装的系统不同,您始终拥有的系统处于出厂状态,并且可以轻松复制。大多数开发人员只是在其主要工作系统上测试软件,而这些工作往往是通过安装其他软件包来大量定制的。通过在Live CD上进行测试,可以确保最终用户将获得最佳体验。
使用testappimage
您可以使用Live CD的ISO,对其进行循环挂载,将它们chroot放入其中,然后在其中运行AppImage。这样,每个受支持的基本系统(发行版)大约需要700 MB,并且只需交换一个ISO文件即可轻松升级到较新版本。以下脚本针对类似Ubuntu的(基于Casper的)和类似于Fedora的(基于Dract的)Live ISO自动执行此操作:
$ wget https://raw.githubusercontent.co ... master/testappimage
$ sudo bash testappimage /path/to/elementary-0.2-20110926.iso AppImageAssistant.AppImage
使用基于Docker的appimage-testsuite
除了Live CD ISO,还可以使用Docker容器在各种Linux发行版上测试AppImage软件包。这种方法几乎适用于任何具有基本Docker容器的Linux发行版。对于每个受支持的发行版,都有一个对应的DockerFile,该文件允许使用运行AppImage包所需的最少依赖关系集构建一个容器。
当前,仅--appimage-extract支持提供该选项的type2 AppImage 。
例如,要在Ubuntu 18.04上测试AppImage软件包,请遵循以下步骤:
$ git clone https://github.com/aferrero2707/appimage-testsuite.git
$ cd appimage-testsuite
$ ./run.sh PATH_TO_APPIMAGE/package.AppImage ubuntu-18.04
# /aitest/aitest.sh
该run.sh脚本将构建相应的Docker容器,确定主机系统的IP地址,并使用方便的参数运行该容器。主机HOME文件夹映射到/shared正在运行的容器中的文件夹,并且X服务器被转发到主机系统,以便可以正确执行图形应用程序。
开箱即用地支持以下Linux发行版:
Ubuntu 14.04、16.04和18.04
CentOS 6和7
Fedora 26和27
Debian稳定与测试
Manjaro(Arch Linux衍生产品)
Sabayon(Gentoo Linux衍生版)
可以通过编写适当的Dockerfile添加其他发行版。
用户可能需要修改run.sh脚本并更改用于猜测主机IP地址的行:
IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}') |
|