2013-05-06 129 views
2

在你有机会获得process.os()process.platform节点,给你5个值之一:如何区分node.js中的不同操作系统发行版?

'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映像文件之间的区别非常有用。

+0

获取发行版名称通常是非标准的'/ etc/debian_version'就是其中之一。 '/ proc/version'可能会告诉你其他的东西。为什么你需要专门的发行版? – 2013-05-06 21:36:27

+0

我想抽象出不同的操作系统上安装node.js(和其他库),因为每个操作系统都有不同的包管理器/工具,并且每个平台的安装略有不同:https://github.com/joyent/ node/wiki/Installing-Node.js-via-package-manager – 2013-05-06 21:41:08

+0

另一个是#cat/etc/SuSE-release – 2013-05-06 21:51:42

回答

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

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

+0

别忘了'/ etc/issue' guys .. http://unix.stackexchange.com/a/84281 – 2016-08-09 02:44:14

3

在Python的平台模块应与大多数比较常见的,许多不常见的Linux发行版的工作linux_distribution()函数:

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

执行从node.js的shell命令在这里回答:node.js shell command execution

相关问题