AppImage 选择 CentOS(或基于 RHEL/CentOS 的旧版本环境) 作为构建/运行参考环境,主要有以下几个原因:
Linux 二进制程序的兼容性规则通常是:
在“旧”系统上编译的程序,通常能在“新”系统上运行;反过来则不行。
CentOS / RHEL 以 更新慢、ABI 稳定 著称。例如:
如果在 CentOS 7 上构建 AppImage:
这就是为什么 AppImage 官方常推荐使用 CentOS 6/7 作为“最底层兼容基准”。
很多 Linux 程序依赖:
glibclibstdc++CentOS 使用的版本通常偏旧但稳定:
因此:
在 CentOS 上链接的库,在其他发行版大概率可用
CentOS / RHEL 在:
中非常常见。很多 AppImage 目标用户正是这些环境。
AppImage 官方工具(如 linuxdeploy)常建议:
目的是:
最大化“一次打包,到处运行”
注意:
AppImage 选 CentOS,不是为了“运行”,而是为了 构建出兼容性最强的二进制包。
如果你愿意,我也可以: