我已经完成了将一堆内部应用程序从CentOS6移植到CentOS7的任务。通过这一举措,我们正在将我们自己重新打包的外部包的依赖关系更改为包的官方上游版本。
因此,我正在寻找一个可靠的python2.7代码,它将执行此操作:
if CentOS version >= 7:
do things the new way
else:
do things the deprecated way
它将用于自动生成.spec文件以制作RPM。
我一直在研究解析/etc/redhat-release
之类的问题,但这似乎对我想要的东西有点不可靠。还有更好的方法吗?
非常感谢。
答案 0 :(得分:3)
编辑:忽略我的,使用@Kelvin的
扩展我的评论以添加相关代码。这基于This answer
import subprocess
version = subprocess.check_output(["rpm", "-q", "--queryformat", "'%{VERSION}'", "centos-release"])
if int(version) >= 7:
# do something
答案 1 :(得分:3)
您也可以尝试:
In [1]: import platform
In [2]: platform.linux_distribution()
Out[2]: ('Red Hat Enterprise Linux Server', '6.5', 'Santiago')
In [3]: dist = platform.linux_distribution()
In [4]: "Red Hat" in dist[0] and dist[1].split('.')[0] == '6'
Out[4]: True
In [5]:
HTH