2

在节点中,您可以访问process.os()and 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 映像 ose 之间的区别很有用。

4

3 回答 3

2

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

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

此处回答了从 node.js 执行 shell 命令:node.js shell command execution

于 2013-05-07T08:31:35.610 回答
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
  • 苏塞:/etc/SuSE-release
  • 许多发行版也写信给/etc/issue

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

于 2013-05-07T00:07:38.140 回答
0

在 node.js 上,

const os = require('os');
console.log(os.version());

应该做的伎俩。在我的机器上打印#29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021在控制台上

于 2021-08-23T07:43:13.310 回答