温馨提示×

ubuntu appimage怎样打包

小樊
48
2026-10-22 15:14:45
栏目: 智能运维

在 Ubuntu 上打包 AppImage,一般分三步:准备应用、写 .desktop 和 AppRun、用工具生成 AppImage。下面给你一个实用、可操作的流程(以 GTK/Qt/命令行程序为例)。


一、准备应用目录结构

建议用这种标准结构:

MyApp.AppDir/
├── AppRun
├── myapp.desktop
├── myapp.png
└── usr/
    ├── bin/
    │   └── myapp
    └── lib/

说明:

  • AppRun:启动脚本(必须可执行)
  • myapp.desktop:桌面入口文件
  • myapp.png:图标(建议 256x256)
  • usr/bin/myapp:你的程序或脚本

二、编写必要文件

1️⃣ AppRun(启动器)

#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
exec "$HERE/usr/bin/myapp" "$@"

赋予执行权限:

chmod +x MyApp.AppDir/AppRun

2️⃣ myapp.desktop

[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;

确保文件名和 Icon 对应。


三、使用 linuxdeploy 打包(推荐)

1️⃣ 下载 linuxdeploy

wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage

2️⃣ 自动打包 AppImage

./linuxdeploy-x86_64.AppImage \
  --appdir MyApp.AppDir \
  --output appimage

生成结果:

MyApp-x86_64.AppImage

✅ 它会自动:

  • 复制依赖库
  • 生成 .desktop
  • 打包成 AppImage

四、手动打包(不推荐但可控)

如果你不想用工具:

./linuxdeploy-x86_64.AppImage --appdir MyApp.AppDir
mksquashfs MyApp.AppDir MyApp.squashfs -all-root
cat runtime > MyApp.AppImage
cat MyApp.squashfs >> MyApp.AppImage
chmod +x MyApp.AppImage

(runtime 可从 AppImage 官方仓库获取)


五、常见问题

❓ 依赖不全

用:

ldd usr/bin/myapp

或加插件:

--plugin gtk
--plugin qt

❓ Ubuntu 22.04+ 无法运行 AppImage

sudo apt install libfuse2

六、推荐工具总结

工具 用途
linuxdeploy 最常用
appimagetool 官方
electron-builder Electron
pkg2appimage 转换 deb

如果你愿意,可以告诉我:

  • 你的程序是 C / C++ / Python / Electron / Java?
  • 是 GUI 还是命令行?

我可以直接给你专用打包模板。

0 踩