【问题标题】:How to get linux distribution info in mono?如何以单声道获取 linux 分发信息?
【发布时间】:2014-02-27 11:42:17
【问题描述】:

我的问题是获取有关运行单声道代码的 linux 发行版的信息(例如:Linux Mint、Ubuntu、Fedora 等...)

这很重要,因为我的应用程序用于编辑 .bash_profile(Ubuntu) 或 .profile(Linux Mint) 或 .bashrc( Mac OS) 文件,以便在 Windows 上轻松编辑环境变量,例如 Rapid Environment Editor

Environment.OSVersion.Platform 没有给我必要的细节,在我的情况下只有 Unix(我使用的是 Linux Mint)。

【问题讨论】:

  • os.uname() 给你足够了吗?
  • 据我所知 os.uname() 在 Python 中而不是在 Mono 中。无论如何, os.uname() 还不够,因为它说我在 Ubuntu 上,这实际上是错误的,因为正如我在问题中提到的那样,我在 Linux Mint 上。我认为这个 os.uname() 事情的发生是因为 Linux Mint 是从 Ubuntu 派生的
  • 请注意,发行版不一定预先确定您提到的文件,这取决于用户的外壳是什么,以及您要为哪种情况设置变量(即登录与否)登录外壳)。
  • 那么,您对处理这种情况有何建议?也许我只是简单地将所有添加的环境变量保存到所有列出的文件中?也许它可以工作,但我认为这并不优雅。

标签: c# linux mono


【解决方案1】:

我不知道是否有 .NET API 可以做到这一点。从表面上看,您似乎是对的,Environment.OSVersion 只会告诉您您正在运行 Unix。

如果第一次检查表明您正在运行 Unix,也许您可​​以尝试解析 /etc/lsb-release 文件。在我的机器上,该文件如下所示:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS"

您也可以测试它是否存在于其他现代发行版中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2020-11-19
    • 2011-12-14
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多