原则
我们可以认为每一个Linux发行版,都会配套一个稳定版本的编译器,例如,CentOS7对应的GCC
编译器版本为4.8,系统内其它组件使用GCC4.8
编译器进行编译、生成。
官方发布组件
一般来说,以CentOS7为例,官方发布的rpm组件,都是在CentOS7环境中,经过GCC4.8编译器进行编译、生成二进制发布文件,所以,此类rpm与系统的兼容性最好。
由于Linux社区,以及glibc、libstdc++等组件优良的向前、向后兼容性,有时甚至跨大版本之间部署,问题也不是太大
RPMRPM_7">此RPM与彼RPM不同
由此,我们可以判断rpm之间与系统的兼容性,很大程度上决定于使用的编译器版本,也就是具体的Linux发行版
。
对于CentOS系列来讲,携带el7与el8关键词的rpm包适应的环境是不同的,甚至与上游fedora社区发布的rpm包,也需要根据环境情况,选择合适的rpm包!
直接源码编译
在没有合适RPM的情况下,可以选择源码直接编译,这样与系统的兼容性也是最好的!
结论
定Linux发行版、定编译器版本
rpm包通常体现为与环境的冲突和兼容性问题,那么最好的兼容性保证,就是在相应发行版环境中,使用相同编译器编译出来的发布版本 😃