.tar.gz 软件压缩包打包 AppImage 指南

发布时间 2023-07-14 14:39:34作者: Ctrl+c_Ctrl+v程序员

要想打包 AppImage 分3步走

  1. 生成 AppDir
  2. 拷贝资源及依赖文件
  3. 生成 AppImage

准备工作

下载打包工具 linuxdeploy  appimagetool

下载/解压 好要打包的程序,这里用 Clash for Windows 做例子

样例目录
 ❯ tree
.
├── appimagetool-x86_64.AppImage
├── Clash.for.Windows-0.20.28-x64-linux.tar.gz
├── Clash_for_Windows-x86_64
│   ├── cfw
│   ├── cfw.png
│   ├── chrome_100_percent.pak
│   ├── chrome_200_percent.pak
│   ├── chrome_crashpad_handler
│   ├── chrome-sandbox
│   ├── icudtl.dat
│   ├── libEGL.so
│   ├── libffmpeg.so
│   ├── libGLESv2.so
│   ├── libvk_swiftshader.so
│   ├── libvulkan.so.1
│   ├── LICENSE.electron.txt
│   ├── LICENSES.chromium.html
│   ├── locales
│   │   ├── af.pak
│   │   ├── am.pak
│   │   ├── ar.pak
│   │   ├── bg.pak
│   │   ├── bn.pak
│   │   ├── ca.pak
│   │   ├── cs.pak
│   │   ├── da.pak
│   │   ├── de.pak
│   │   ├── el.pak
│   │   ├── en-GB.pak
│   │   ├── en-US.pak
│   │   ├── es-419.pak
│   │   ├── es.pak
│   │   ├── et.pak
│   │   ├── fa.pak
│   │   ├── fil.pak
│   │   ├── fi.pak
│   │   ├── fr.pak
│   │   ├── gu.pak
│   │   ├── he.pak
│   │   ├── hi.pak
│   │   ├── hr.pak
│   │   ├── hu.pak
│   │   ├── id.pak
│   │   ├── it.pak
│   │   ├── ja.pak
│   │   ├── kn.pak
│   │   ├── ko.pak
│   │   ├── lt.pak
│   │   ├── lv.pak
│   │   ├── ml.pak
│   │   ├── mr.pak
│   │   ├── ms.pak
│   │   ├── nb.pak
│   │   ├── nl.pak
│   │   ├── pl.pak
│   │   ├── pt-BR.pak
│   │   ├── pt-PT.pak
│   │   ├── ro.pak
│   │   ├── ru.pak
│   │   ├── sk.pak
│   │   ├── sl.pak
│   │   ├── sr.pak
│   │   ├── sv.pak
│   │   ├── sw.pak
│   │   ├── ta.pak
│   │   ├── te.pak
│   │   ├── th.pak
│   │   ├── tr.pak
│   │   ├── uk.pak
│   │   ├── ur.pak
│   │   ├── vi.pak
│   │   ├── zh-CN.pak
│   │   └── zh-TW.pak
│   ├── resources
│   │   ├── app.asar
│   │   └── static
│   │       └── files
│   │           ├── default
│   │           │   └── Country.mmdb
│   │           └── linux
│   │               └── x64
│   │                   ├── clash-linux
│   │                   ├── clash-linux.sign
│   │                   └── service
│   │                       └── clash-core-service
│   ├── resources.pak
│   ├── snapshot_blob.bin
│   ├── v8_context_snapshot.bin
│   └── vk_swiftshader_icd.json
├── linuxdeploy-x86_64.AppImage

生成AppDir

手动生成是比较麻烦的,所以有了 linuxdeploy 这个工具

生成时需要指定好 可执行文件路径 图标路径

 ./linuxdeploy-x86_64.AppImage --appdir=软件名字.AppDir -e "可执行文件路径" --create-desktop-file --icon-file=图标路径

例子:  ./linuxdeploy-x86_64.AppImage --appdir=Clash_for_Windows-x86_64.AppDir -e "Clash_for_Windows-x86_64/cfw" --create-desktop-file --icon-file=Clash_for_Windows-x86_64/cfw.png

拷贝资源及依赖文件

因为 linuxdeploy 是不会帮你拷贝拷贝资源及依赖文件的,只会帮你把可执行文件考进去(虽然有一个 -l 但是不方便 )

cp -r ./解压出来的软件目录/* ./软件名字.AppDir/usr/bin/

例子: cp -r ./Clash_for_Windows-x86_64/* ./Clash_for_Windows-x86_64.AppDir/usr/bin/

生成 AppImage

 ./appimagetool-x86_64.AppImage ./软件名字.AppDir