如何可靠地检查我是否在Python脚本中高于某个CentOS版本(CentOS 7)?

时间:2015-08-21 14:48:17

标签: python python-2.7 centos rhel centos7

我已经完成了将一堆内部应用程序从CentOS6移植到CentOS7的任务。通过这一举措,我们正在将我们自己重新打包的外部包的依赖关系更改为包的官方上游版本。

因此,我正在寻找一个可靠的python2.7代码,它将执行此操作:

if CentOS version >= 7:
    do things the new way
else:
    do things the deprecated way

它将用于自动生成.spec文件以制作RPM。

我一直在研究解析/etc/redhat-release之类的问题,但这似乎对我想要的东西有点不可靠。还有更好的方法吗?

非常感谢。

2 个答案:

答案 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