我目前正在编写一个Python应用程序来更改一些网络配置文件。该应用程序需要在 Ubuntu 10.04 至 13.10 上运行。问题是,NetworkManager 在不同版本上以不同的方式被破坏(尽管他们似乎最终在 13.04+ 中修复了它),这导致与我的应用程序不兼容。
我已经找出了每个版本的问题并为它们开发了解决方法,我只是不确定检测用户正在运行的 Ubuntu 版本的最佳方法是什么。
到目前为止我想出的最好的解决方案是解析lsb_release -a
,但这似乎是一个相当脆弱的解决方案,对于 Ubuntu 派生的发行版(例如 Mint)甚至可能会失败,甚至可能会失败于一些“官方”变体(Kubuntu、Xubuntu 等)。
有没有好的方法可以检测base给定 Linux 发行版的发行版和版本,以便我可以根据该版本做出我的应用程序的选择?
为了简化代码,您可以做的一件事就是实际了解一件事:lsb_release
被写。它实际上是用 python 编写的。
所以我们可以将大部分代码简化为:
>>> import lsb_release
>>> lsb_release.get_lsb_information()
{'RELEASE': '10.04', 'CODENAME': 'lucid', 'ID': 'Ubuntu', 'DESCRIPTION': 'Ubuntu 10.04.4 LTS'}
这不一定对所有子 ubuntu 发行版都有帮助,但我不知道有任何内置表可以为您做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)