在 CentOS 下打包 AppImage,通常有两种常见思路:
下面按「最实用、最容易成功」的方式一步步说明。
sudo yum install -y fuse fuse-libs zlib glibc
如果是 CentOS 8:
sudo dnf install -y fuse fuse-libs
注意:AppImage 运行时需要
fuse,但打包时不一定必须
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
pip3 install appimage-builder
MyApp/
├── usr/
│ ├── bin/
│ │ └── myapp
│ └── share/
│ ├── applications/
│ │ └── myapp.desktop
│ └── icons/
│ └── hicolor/256x256/apps/myapp.png
.desktop[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;
./linuxdeploy-x86_64.AppImage \
--appdir MyApp \
--output appimage
生成:
MyApp-x86_64.AppImage
gcc main.c -o myapp
cp myapp MyApp/usr/bin/
./linuxdeploy-x86_64.AppImage \
--appdir MyApp \
--executable MyApp/usr/bin/myapp \
--output appimage
appimage-builder --generate
按提示选择:
appimage-builder --recipe AppImageBuilder.yml
CentOS 7 默认 glibc 2.17
如果你在 CentOS 8/Stream 打包,可能在 CentOS 7 上无法运行
✅ 解决方案:
docker run -it centos:7 bash
运行 AppImage 时:
fuse: device not found
解决:
sudo modprobe fuse
或:
./xxx.AppImage --appimage-extract
| 场景 | 推荐方式 |
|---|---|
| 简单程序 | linuxdeploy |
| 复杂依赖 | appimage-builder |
| 兼容老系统 | CentOS 7 + linuxdeploy |
| CI 打包 | Docker + linuxdeploy |
如果你愿意,可以告诉我:
我可以直接给你一套可用命令模板。