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

在节点中,您可以访问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 

如果没有标准的方法,那么目前有哪些首选解决scheme? 主要是这对于能够区分(编程)ubuntu和一些其他stream行的EC2镜像ose有所帮助。

总结所有的回应:没有简单的方法来确定当前的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

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

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

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

从node.js执行一个shell命令在这里被回答: node.js shell命令执行