在 CentOS 上制作 AppImage 包,核心思路是:
把程序 + 依赖库 + 启动脚本打包成一个可执行的 AppImage 文件。
下面从「准备工作 → 打包 → 测试」一步步说明。
sudo yum install -y gcc-c++ make fuse file
常用工具是 linuxdeploy 或 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
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
假设你要打包的程序叫 myapp
myapp.AppDir/
├── AppRun
├── myapp.desktop
├── myapp.png
└── usr/
└── bin/
└── myapp
mkdir -p myapp.AppDir/usr/bin
cp /path/to/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
./linuxdeploy-x86_64.AppImage \
--appdir myapp.AppDir \
--output appimage
✅ 优点:自动复制 .so 依赖
chmod +x myapp-x86_64.AppImage
./myapp-x86_64.AppImage
如果在 CentOS 上运行提示:
fuse: device not found
安装 fuse:
sudo yum install fuse
sudo modprobe fuse
✅ 建议在 CentOS 7 或 旧版本 Ubuntu 打包
✅ 避免 glibc 版本过高
使用:
ldd usr/bin/myapp
查看缺失库
准备程序
→ 组织 AppDir
→ 写 AppRun / desktop
→ linuxdeploy 或 appimagetool
→ 生成 AppImage
如果你愿意,可以告诉我:
我可以直接给你针对性打包示例。