如何区分node.js中不同的操作系统发行版?

时间:2013-05-06 21:33:16

标签: linux node.js operating-system platform

在节点中,您可以访问process.os()process.platform,其中包含5个值中的一个:

'darwin'
'freebsd'
'linux'
'sunos'
'win32'

但是如何打印出特定的发行版,例如其中一个?

http://en.wikipedia.org/wiki/List_of_Linux_distributions

'ubuntu'
'gentoo'
'fedora'
'SUSE Linux'
'CentOS'
dozens/hundreds more

如果没有标准方法,那么目前有哪些首选解决方案吗?主要是这对于能够分辨ubuntu和其他一些流行的EC2图像之间的差异(编程方式)非常有用。

2 个答案:

答案 0 :(得分:3)

Python平台模块中的linux_distribution()函数应该适用于大多数常见的和许多不太常见的Linux发行版:

python -c "import platform; print platform.linux_distribution()"

在这里回答了来自node.js的shell命令:node.js shell command execution

答案 1 :(得分:1)

总结所有响应:没有简单的方法来确定当前的Linux发行版。

然而,这里有一些你可以开始的事情。

  • uname -v通常会为您提供一个包含一些信息的长字符串。 (例如:#66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013
  • Debian /etc/debian_version,但这也是在Ubuntu中设置的!
  • Ubuntu:/etc/lsb-release/etc/os-release
  • SuSe:/etc/SuSE-release
  • 许多发行版也写信给/etc/issue

如果您有可能发生的可能发行版的列表,您应该能够以某种方式获取该信息。如果你想要一个通用的方法我会猜测没有绝对的答案。