veket官方网站论坛

veket

 找回密码
 要注册
搜索
查看: 5150|回复: 11

[推荐] AppImage进阶:测试AppImage

[复制链接]
发表于 2020-3-15 07:43 | 显示全部楼层 |阅读模式
测试你的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}')
发表于 2020-3-15 11:28 | 显示全部楼层
辛苦了,不过sfs格式更好用方便些。
sfs容量小,挂载方便,也更灵活些。
发表于 2020-3-15 22:33 | 显示全部楼层
mszwdj 发表于 2020-3-15 11:28
辛苦了,不过sfs格式更好用方便些。
sfs容量小,挂载方便,也更灵活些。

的确,应该推广sfs格式,不需要的时候移除全部不要。
挂载极方便,特别适合大软件打包
 楼主| 发表于 2020-3-16 07:44 | 显示全部楼层
初初练 发表于 2020-3-15 22:33
的确,应该推广sfs格式,不需要的时候移除全部不要。
挂载极方便,特别适合大软件打包 ...


sfs程序挂载后,会在系统菜单和桌面生成启动器/启动程序的快捷方式,会修改系统设置,sfs文件移动了,就无法启动,而AppImage不会,可以随便移动重命名,不影响使用,也不会修改系统设置,sfs程序不用了要卸载,AppImage不用安装所以也就没有卸载的概念,直接删除就行。
sfs程序动态链接系统库,做出来的文件比较小,而AppImage则一次性封装了所有目标系统需要用到的库,所以文件较大。所以sfs程序通用型差,一般流行于puppy系系统,而AppImage在多数Linux系统下面都能运行。
发表于 2020-3-16 14:00 | 显示全部楼层
nz2017 发表于 2020-3-16 07:44
sfs程序挂载后,会在系统菜单和桌面生成启动器/启动程序的快捷方式,会修改系统设置,sfs文件移动了,就 ...

以wps为例好了,封装成AppImage有难度,也不方便
但成sfs格式,占用空间小的优点是别的包格式暂时都没法做到。
AppImage启动时很慢,只有不常用的软件做成AppImage合适。
个人看法。
只用veket多。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-4-29 19:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表