在 CentOS 上制作 AppImage,一般流程是:打包应用 → 准备运行环境 → 用 linuxdeploy 生成 AppImage。下面以 CentOS 7 / 8 为例说明(CentOS Stream 也类似)。
sudo yum install -y git wget fuse patchelf
如果是 CentOS 8 / Stream:
sudo dnf install -y git wget fuse patchelf
sudo modprobe fuse
假设你的程序结构如下:
MyApp/
├── bin/
│ └── myapp
├── lib/
├── share/
└── myapp.desktop
myapp.desktop
[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;
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 \
--output appimage
生成结果:
MyApp-x86_64.AppImage
./linuxdeploy-x86_64.AppImage \
--appdir MyApp \
--desktop-file MyApp/myapp.desktop \
--executable MyApp/bin/myapp \
--output appimage
CentOS 7 的 glibc 较老,生成的 AppImage 在 新系统可用,但新系统生成的不能回退。
✅ 建议:
用以下命令检查:
ldd MyApp/bin/myapp
缺失的库放进 MyApp/lib/
图标必须存在:
MyApp/usr/share/icons/hicolor/256x256/apps/myapp.png
并在 desktop 文件中引用:
Icon=myapp
./MyApp-x86_64.AppImage
./linuxdeploy-x86_64.AppImage --plugin qt
./linuxdeploy-x86_64.AppImage --appimage-extract-and-run
准备程序 → 放 AppDir → linuxdeploy 打包 → 生成 AppImage
如果你愿意,可以告诉我:
我可以直接给你一套可复制的打包脚本。