在 CentOS 上制作 AppImage 文件,一般流程是:准备程序 → 打包目录结构 → 用 appimagetool 生成 .AppImage。下面给你一个从零开始的实操教程(以 CentOS 7/8 为例)。
sudo yum install -y gcc-c++ make fuse wget
CentOS 8 用
dnf代替yum
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
mkdir -p MyApp.AppDir/usr/bin
cp myapp MyApp.AppDir/usr/bin/
目录结构应类似:
MyApp.AppDir/
├── AppRun
├── myapp.desktop
├── myapp.png
└── usr/
└── bin/
└── myapp
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
./MyApp-x86_64.AppImage
fusermount: mount failed: Operation not permitted
解决:
appimagetool --appimage-extract
./squashfs-root/AppRun
AppImage 在 新系统打包,旧系统运行 更安全
建议在 CentOS 7 上打包以提高兼容性
linuxdeploy 自动打包:wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
./linuxdeploy-x86_64.AppImage --appdir MyApp.AppDir
如果你告诉我:
我可以给你更具体的 AppImage 模板。