.tar.gz 软件压缩包打包 AppImage 指南
要想打包 AppImage 分3步走
- 生成 AppDir
- 拷贝资源及依赖文件
- 生成 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