linux打包工具AppImageKit

linux打包工具AppImageKit

  1. 概述

    这个工具的作用就是,通过构建一个内核加载文件系统,打包app的,这样的好处就是linux内核通用型好,因为打包文件系统,在嵌入式linux中是一个非常常用手段,弄一个文件系统(通常是只读的),放到磁盘上,然后读取,后加载到内核执行,如果要写入的话,就写入到另一个存储区域,这样就可以保证系统的安全性.

    我们使用,内核文件系统构建工具进行打包,打包工具下载地址 :https://github.com/AppImage/AppImageKit 使用git clone –recursive 下载,里面有对squashfs的引用.

  2. AppImageKit的准备,下载后,运行 ./build.sh 进行编译,这个过程中需要root权限,需要安装一些必要的东东,编译完成后生成在build目录,里面有如下文件 : appimaged appimagetool AppRun digest mksquashfs runtime validata 其中:appimagetool 是打包应用的主要工具. appimaged 是制作daemon程序的:这里的daemon指的是监视文件系统的变化,如果想让需要跑的程序成为系统daemon程序,只需把打包好的程序做成服务即可,或者使用nohup跑, AppRun 是生成的appimage进入执行的入口文件,这个文件解析 xxx.desktop文件,xxx.desktop文件是我们填写的,在里面指定我们的启动文件就可以了.

  3. 打包

    参考: https://github.com/AppImage/AppImageKit , https://www.linuxgame.cn/appimage-doc-3

    过程如下,:

    1. 建立一个文件夹 {app_package_dir}. 并建立 {app_package_dir}/usr/bin, {app_package_dir}/usr/lib 等

    2. 在 {app_package_dir} 下建立一个文件,名字任意,要以 .desktop结尾.这个文件作为打包的配置文件.内容如下:

      [Desktop Entry]
      Type=Application
      Name={你应用的名字,这个决定生成的image包的名字}
      Exec={这个最重要了,因为在执行打包后的文件时,会执行usr/bin下的同名文件}
      Comment={注释}
      Icon={指定一个app_package_dir文件下的png,svg文件作为图标}
      Categories={Development,Game,等等}
      Terminal=true|false,{是否在显示运行终端}
      

      配置指定的文件们,比如exec文件,测试的话,写一个简单的shell文件就行的,二进制的话,拷贝库文件到 usr/lib目录下.配置完以后,在这个目录下执行 ./AppRun ,测试是不是可以用,不通过解决依赖问题和文件路径问题.

    3. 在{app_package_dir}的同级目录下,执行 appimagetools {app_package_dir} ,进行打包操作,会生成一个name指定的名字{package_name} + .AppImage的文件,可执行 ,就可以用了.

    4. 上一步执行完后,会生成一个{package_name}.AppImage文件,如果,在和这个文件的同一级文件下,建立一个 {package_name}.AppImage.home 目录,那麽,再次执行这个文件的时候,这个文件的执行环境中,$HOME,将重定义到{package_name},AppImage.home目录下, 这样,就可以 携带数据了 非常方便,对应需要修改本地文件(

      指和应用程序文件夹中的文件)的时候,需要使用连接符号,等手段连接出去的appimagetool 打包后的程序,是通过只读挂载的,不能修改内部的数据的. 其他目录参考给出的官网数据.

  4. 使用技巧

    如果一个程序不修改home目录,而是修改二进制程序所在目录的话,可以利用二级连接把对应修改的文件目录连接到../../../ 下的一个目录下,然后,在启动脚本中重新连接一个 $HOME 下的目录到 /tmp 目录下的一个文件即可.../../../ 的解释:在挂载的文件系统中,这个相对路径就是实际目录的 /tmp 目录, AppImage 会把自己的文件系统挂载到 /tmp/.mount-xxxxxxx 下

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值