制作 Ubuntu 的 AppImage 本质是把可执行程序 + 依赖库 + 运行环境打包成一个单文件、可移植、免安装的程序。下面按从入门到进阶给你一个完整流程。
AppImage 是一种 Linux 下的通用打包格式,特点:
.AppImage)sudo apt update
sudo apt install -y \
build-essential \
cmake \
git \
wget \
fuse \
patchelf
⚠️ Ubuntu 22.04+ 默认没有
fuse,但运行 AppImage 需要:
sudo apt install fuse3 libfuse2
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool
假设你要打包一个叫 myapp 的程序:
MyApp.AppDir/
├── AppRun
├── myapp
├── myapp.desktop
└── myapp.png
#!/bin/bash
DIR="$(dirname "$(readlink -f "$0")")"
exec "$DIR/myapp" "$@"
chmod +x MyApp.AppDir/AppRun
[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;
cp your_binary MyApp.AppDir/myapp
chmod +x MyApp.AppDir/myapp
cp icon.png MyApp.AppDir/myapp.png
appimagetool MyApp.AppDir
成功后会得到:
MyApp-x86_64.AppImage
chmod +x MyApp-x86_64.AppImage
./MyApp-x86_64.AppImage
如果你的程序依赖动态库:
ldd myapp
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
./linuxdeploy-x86_64.AppImage \
--appdir MyApp.AppDir \
--executable myapp \
--desktop-file myapp.desktop \
--icon-file myapp.png
然后再打包:
appimagetool MyApp.AppDir
✅ 这是最稳妥方法
libQt5*.soplatforms/libqxcb.solinuxdeploy 会自动处理 Qt 插件python -m venv venv
pip install -r requirements.txt
再打包:
linuxdeploy \
--appdir AppDir \
--executable venv/bin/python \
--custom-apprun script.sh
AppRun 中:
exec python main.py "$@"
appimagetool --lint MyApp.AppDir
sudo apt install fuse3 libfuse2
lddlinuxdeploy/usr/lib 手工复制AppImage 向下兼容,只要:
✅ 官方推荐组合:
linuxdeploy + appimagetool
✅ 适用:
如果你愿意,可以告诉我:
我可以直接给你专用打包脚本 ✅