AppImage打包应用简明指南
一 核心概念与准备
二 通用手动打包流程
#!/bin/sh
HERE="$(dirname "$(readlink -f "$0")")"
export PATH="${HERE}/usr/bin:${PATH}"
export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}"
exec "${HERE}/usr/bin/your_executable" "$@"
chmod +x MyApp.AppDir/AppRun[Desktop Entry]
Name=MyApp
Exec=AppRun
Icon=myapp
Type=Application
Categories=Utility;
chmod +x appimagetool-*.AppImage
./appimagetool-*.AppImage MyApp.AppDir
chmod +x MyApp-*.AppImage
./MyApp-*.AppImage
上述流程适用于多数原生二进制应用;若需自动收集依赖与生成 .desktop,可继续阅读下一节。
三 自动化与工具辅助
chmod +x linuxdeploy-*.AppImage
./linuxdeploy-*.AppImage --appdir=MyApp.AppDir -e usr/bin/your_executable \
--create-desktop-file --icon-file=myapp.png
完成后用 appimagetool 打包:appimagetool MyApp.AppDirchmod +x linuxdeployqt-*.AppImage
./linuxdeployqt-*.AppImage MyApp.AppDir/usr/bin/your_qt_app -appimage
--comp xz(更小,较慢)、--comp gzip(更快,较大)--updateinformation "zsync|https://example.com/MyApp-latest-x86_64.AppImage.zsync"--sign(需预先配置 GPG 密钥)
示例:./appimagetool-*.AppImage MyApp.AppDir \
--comp xz \
--updateinformation "zsync|https://example.com/MyApp-latest-x86_64.AppImage.zsync" \
MyApp-x86_64.AppImage
以上工具能显著减少手工维护工作量,并便于分发与更新。
四 Python 应用打包要点
#!/bin/sh
HERE="$(dirname "$(readlink -f "$0")")"
export PATH="${HERE}/usr/bin:${PATH}"
export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}"
export PYTHONHOME="${HERE}/usr"
export PYTHONPATH="${HERE}/usr/lib/python3.*/site-packages:${PYTHONPATH}"
exec "${HERE}/usr/bin/python3" "${HERE}/usr/bin/your_app.py" "$@"
[Desktop Entry]
Name=MyPythonApp
Exec=AppRun
Icon=myapp
Type=Application
Categories=Utility;
Terminal=true
find MyApp.AppDir -name __pycache__ -delete 等upx --best <file>五 常见问题与发布建议
chmod +x YourApp-*.AppImageYourApp-*.AppImage --appimage-extractzsyncmake -u <下载URL> YourApp-*.AppImage--sign 对 AppImage 进行 GPG 签名,便于分发验证。