我目前正在编写一个更改一些网络配置文件的 Python 应用程序。该应用程序需要在 Ubuntu 10.04 到 13.10 上运行。问题是,NetworkManager 在不同版本上以不同方式被破坏(尽管他们似乎最终在 13.04+ 中修复了它),这导致与我的应用程序不兼容。
我已经找出了每个版本的问题并为它们开发了解决方法,我只是不确定检测用户正在运行的 Ubuntu 版本的最佳方法是什么。
到目前为止,我想出的最好的解决方案是解析 的输出lsb_release -a
,但这似乎是一个相当脆弱的解决方案,并且可能会在 Ubuntu 派生的发行版(如 Mint)甚至一些“官方”变体中失败(Kubuntu、Xubuntu 等)。
有没有一种好方法可以检测给定 Linux 发行版的基本发行版和版本,以便我可以基于该版本做出我的应用程序的选择?