在 CentOS 上制作 AppImage 包,本质上就是把应用程序、依赖库和一个 AppRun 启动脚本打包成一个可执行的 .AppImage 文件。下面给你一个从零开始的实践流程(以 CentOS 7/8 为例)。
sudo yum install -y fuse wget gcc-c++ make
常用工具:
linuxdeploy(推荐)appimagetoolwget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
假设你要打包一个示例程序:
mkdir -p myapp/usr/bin
写一个简单的程序(示例):
cat > myapp/usr/bin/myapp <<'EOF'
#!/bin/bash
echo "Hello from AppImage!"
EOF
chmod +x myapp/usr/bin/myapp
AppImage 要求如下目录结构:
myapp/
├── AppRun
├── myapp.desktop
├── myapp.png
└── usr/
└── bin/
└── myapp
cat > myapp/AppRun <<'EOF'
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
exec "$HERE/usr/bin/myapp" "$@"
EOF
chmod +x myapp/AppRun
cat > myapp/myapp.desktop <<'EOF'
[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;
EOF
wget -O myapp/myapp.png https://example.com/icon.png
./linuxdeploy-x86_64.AppImage \
--appdir myapp \
--output appimage
生成文件类似:
MyApp-x86_64.AppImage
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage myapp
./MyApp-x86_64.AppImage
输出:
Hello from AppImage!
CentOS 7 的 glibc 较老,如果在 新系统 上运行可能没问题,但在 老系统 上运行新编译程序会失败。
✅ 建议:
.AppImage + 静态依赖运行 AppImage 需要 fuse:
sudo yum install fuse
如果你愿意,我可以:
只要告诉我你的程序类型即可。