2013-05-06 4 views
2

:node.js에서 다른 운영 체제 배포판을 구별하는 방법은 무엇입니까? 당신에게 (5 개) 값 중 하나를주고 당신이 <code>process.os()</code> 및 <a href="http://nodejs.org/api/process.html#process_process_platform" rel="nofollow"><code>process.platform</code></a>에 액세스 할 수있는 노드에서

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

을하지만 어떻게 당신이 특정 배포판에서 인쇄하는,이 중 하나와 같은?

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

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

표준 방법이없는 경우 , 어떤 현재 선호하는 솔루션은 거기에 있습니까? 주로 이것은 우분투와 다른 인기있는 EC2 이미지 오아시스 사이의 차이점을 (프로그래밍 방식으로) 알릴 수있는 데 유용 할 것입니다.

+0

배포판 이름을 얻는 것은 일반적으로 비표준입니다.'/ etc/debian_version'은 하나입니다. '/ proc/version'은 다른 것을 알려줄 것입니다. 왜 배포판을 특별히 필요로합니까? –

+0

각 운영 체제마다 패키지 관리자/도구가 다르기 때문에 node.js (및 다른 libs)를 다른 운영 체제에 설치하기를 원합니다. 설치는 각 플랫폼마다 약간 씩 다릅니다. https://github.com/joyent/ node/wiki/Installing-Node.js-via-package-manager –

+0

다른 # cat/etc/SuSE-release –

답변

1

모든 응답 요약 : 현재 Linux 배포판을 쉽게 확인할 수있는 방법은 없습니다.

그러나 여기 몇 가지를 시작할 수 있습니다.

  • uname -v은 일반적으로 몇 가지 정보가 포함 된 긴 문자열을 제공합니다. (예 : #66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013)
  • 데비안 /etc/debian_version이지만 우분투에도 설정되어 있습니다.
  • 우분투 : /etc/lsb-release/etc/os-release
  • 는 수세 : /etc/SuSE-release
  • 많은 배포판은 또한 당신이 일어날 수있는 가능한 배포판의 목록이있는 경우, 당신은 어떻게 든 정보를 얻을 수 있어야 /etc/issue

쓰기 . 제네릭 방식을 원한다면 절대적인 대답은 없을 것입니다.

+0

'/ etc/issue' 녀석들을 잊지 마라 .. http://unix.stackexchange.com/a/84281 –

3

더 일반적이고 덜 일반적인 리눅스 배포판의 많은 대부분의 작업을해야 파이썬의 플랫폼 모듈의 linux_distribution() 함수 :

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

Node.js를에서 쉘 명령을 실행 여기에 대답했다 : node.js shell command execution