在 Ubuntu 上制作 AppImage 一般有两种常见方式:
下面从基础到工具给你一个完整说明。
AppImage 本质上是一个自解压的可执行文件,结构如下:
yourapp.AppImage
├── AppDir/
│ ├── AppRun
│ ├── your_app.desktop
│ ├── your_app.png
│ └── usr/
│ ├── bin/
│ ├── lib/
│ └── share/
核心文件:
AppRun:启动脚本*.desktop:桌面入口sudo apt update
sudo apt install -y libfuse2 wget
下载 appimagetool:
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
mkdir -p MyApp.AppDir/usr/bin
假设你有一个可执行程序 myapp:
cp myapp MyApp.AppDir/usr/bin/
nano MyApp.AppDir/AppRun
内容示例:
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
exec "$HERE/usr/bin/myapp" "$@"
赋予执行权限:
chmod +x MyApp.AppDir/AppRun
nano MyApp.AppDir/myapp.desktop
示例:
[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;
cp myapp.png MyApp.AppDir/
appimagetool MyApp.AppDir
生成:
MyApp-x86_64.AppImage
chmod +x MyApp-x86_64.AppImage
./MyApp-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
./linuxdeploy-x86_64.AppImage \
--executable=myapp \
--desktop-file=myapp.desktop \
--icon-file=myapp.png \
--output=appimage
如果你是 Python 程序:
briefcase 支持直接生成 AppImagePyInstaller + linuxdeploysudo apt install libfuse2
| 场景 | 推荐方式 |
|---|---|
| C/C++ 程序 | linuxdeploy |
| Python 程序 | PyInstaller + linuxdeploy |
| 学习原理 | 手动 AppDir |
| 商业分发 | AppImage + 签名 |
如果你愿意,可以告诉我:
我可以给你专属的一步到位教程。