在 CentOS 上“转换 AppImage 包”通常有两种理解,下面分别说明常见做法。
chmod +x xxx.AppImage
./xxx.AppImage
若提示缺少 FUSE:
sudo yum install fuse fuse-libs
./xxx.AppImage --appimage-extract
会生成 squashfs-root/ 目录,里面是可执行文件和依赖。
这是最接近“转换”需求的做法。
appimage2rpm(推荐简单方案)# 安装依赖
sudo yum install rpm-build
# 下载工具
git clone https://github.com/AppImage/appimage2rpm.git
cd appimage2rpm
# 转换
./appimage2rpm /path/to/xxx.AppImage
生成 .rpm 文件,可直接 rpm -ivh 安装。
./xxx.AppImage --appimage-extract
spec 文件(示例):Name: myapp
Version: 1.0
Release: 1%{?dist}
Summary: AppImage converted
%description
Converted from AppImage
%prep
# 把 squashfs-root 内容放这里
%install
mkdir -p %{buildroot}/opt/myapp
cp -r squashfs-root/* %{buildroot}/opt/myapp/
%files
/opt/myapp/*
%post
ln -s /opt/myapp/AppRun /usr/bin/myapp
rpmbuild -bb myapp.spec
appimage2deb xxx.AppImage
manifest,较复杂,一般不建议。| 目的 | 推荐方式 |
|---|---|
| 只是用 | 直接运行 |
| CentOS 安装管理 | 转 RPM |
| 二次分发 | RPM / 解包后写 systemd |
如果你是 CentOS 7 / 8 / Stream,或想转成具体某种包,可以告诉我,我给你更精确的命令。