在 CentOS 上打包 AppImage 本质上是:把你的程序 + 依赖库 + 一个 AppRun + .desktop 文件,按 AppImage 规范组织成一个目录,然后用 appimagetool 生成 .AppImage。
下面给你一套在 CentOS 上可用的完整流程(CentOS 7 / 8 / Stream 都适用)。
sudo yum install -y fuse gcc-c++ make wget
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
CentOS 上运行 AppImage 需要 fuse:
sudo yum install -y fuse
AppImage 要求一个 AppDir 目录,结构如下:
MyApp.AppDir/
├── AppRun
├── myapp.desktop
├── myapp.png
└── usr/
├── bin/
│ └── myapp
└── lib/
mkdir -p MyApp.AppDir/usr/bin
cp myapp MyApp.AppDir/usr/bin/
cat > MyApp.AppDir/AppRun << 'EOF'
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
exec "$HERE/usr/bin/myapp" "$@"
EOF
chmod +x MyApp.AppDir/AppRun
[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;
cp myapp.png MyApp.AppDir/
CentOS 程序通常依赖 glibc、libstdc++ 等,需要确保依赖完整。
ldd MyApp.AppDir/usr/bin/myapp
把输出的 .so 文件复制到:
MyApp.AppDir/usr/lib/
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 \
--output appimage
linuxdeploy 会自动:
- 复制依赖
- 生成 AppImage
如果你自己组织好了 AppDir:
appimagetool MyApp.AppDir
生成结果:
MyApp-x86_64.AppImage
./MyApp-x86_64.AppImage
FUSEsudo yum install fuse
sudo modprobe fuse
✅ 最省事:
linuxdeploy + appimagetool
✅ 最兼容:
如果你愿意,可以告诉我:
我可以直接给你可用的打包脚本。