2013-05-06 208 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

相關問題