it-swarm-ko.tech

실행중인 Linux 버전을 어떻게 알 수 있습니까?

때로는 스크립트가 다른 Linux에서 다르게 작동해야합니다. 스크립트가 실행중인 Linux 버전을 어떻게 확인할 수 있습니까?

29
jldugger

할 수있는 것과 할 수없는 것에 대한 배포판을 근거로 가정하지 마십시오. 그 방법은 광기입니다 ( "사용자 에이전트 탐지"참조). 대신, 수행하려는 작업이 지원되는지 여부와 사용하려는 명령 또는 파일 위치에 따라 수행 방법을 감지하십시오.

예를 들어, 패키지를 설치하려면 dpkg 또는 rpm이 있는지 확인하여 데비안 시스템 또는 RedHat 시스템에 있는지 여부를 감지 할 수 있습니다 (데비안 머신은 그들에 대한 rpm 명령 ...). 데비안 시스템인지 레드햇 시스템인지가 아니라 그에 따라 무엇을할지 결정하십시오. 그렇게하면 명시 적으로 프로그래밍하지 않은 파생 배포판을 자동으로 지원할 수 있습니다. 아. 패키지에 특정 종속성이 필요한 경우 해당 종속성도 테스트하여 누락 된 내용을 사용자에게 알려주십시오.

또 다른 예는 네트워크 인터페이스를 다루는 것입니다./etc/network/interfaces 파일이 있는지 또는/etc/sysconfig/network-scripts 디렉토리가 있는지에 따라 수행 할 작업을 수행 한 다음 그 위치로 이동하십시오.

그렇습니다. 더 효과적이지만 지난 10 년 이상 웹 개발자가 저지른 모든 실수를 다시 만들고 싶지 않다면 처음부터 현명한 방법으로 할 수 있습니다.

27
womble

uname -a를 실행하여 커널 버전을 찾을 수 있습니다. 배포판 버전은 배포판에 따라 다릅니다.

우분투와 다른 OS에서는 lsb_release -a를 실행하거나/etc/lsb_release를 읽을 수 있습니다

데비안은/etc/debian_version에 버전을 저장합니다

17
Adam Gibbins

대부분의 배포판에는 특정 분포를 결정하는 고유 한 방법이 있습니다.

예를 들면 다음과 같습니다.

Redhat (And derivatives): /etc/redhat-release

SUSE: /etc/SUSE-release

Linux Standard Base 또는 LSB 로 알려진 표준이 있습니다./etc/lsb-release라는 파일 또는 lsb_release라는 프로그램이 있어야 리눅스 배포판에 대한 정보를 되돌릴 수 있습니다.

lsb_release -a
6
Mark Turner
python -c 'import platform ; print platform.dist()[0]'

코드 : http://hg.python.org/cpython/file/2.7/Lib/platform.py

6
jkeogh

다른 답변 외에도 : 하나의 파일을 구문 분석하려면/etc/issue를 통해 tty 로그인을 개인화하십시오.

SUSE Linux Enterprise Server 10 SP2 (i586)-커널\r (\ l)에 오신 것을 환영합니다.

그리고 예, 그것이 차선 책임을 압니다. :)

5
Node

facter 는 이러한 종류의 검색에 유용한 도구이지만 위에 자세히 설명 된 방법 중 일부를 사용하고 Ruby가 필요합니다.

4
Cawflands

가장 좋아하는 쉘에 uname -a를 입력하기 만하면됩니다. 커널 이름과 버전이 인쇄됩니다.

2
user1797

당신은 또한 버전을 얻을 수 있습니다

cat /proc/version

o/p :

Linux 버전 2.6.17-13mdv ([email protected]) (gcc 버전 4.1.2 20070302 (시험판) (4.1.2-1mdv2007.1)) # 1 SMP Fri 3 월 23 일 19:03:31 UTC 2007

2
prasanna

마크, 아담, 미하이와 동의합니다 (평판이 충분하지 않아 투표 할 수 없습니다). LSB 및 그 상대 인 FHS 기반 솔루션은 대부분의 배포에서 작동하며 앞으로도 계속 작동 할 것입니다. LSB와 FHS는 당신의 친구입니다.

2
David J. Liszewski

cat /etc/*release* 거의 항상 작동합니다.

2
ibuys

리눅스 버전은 어려운 질문이다. 좁게 살펴보면 "uname -r ". 배포 버전은 대부분 부적절합니다. 일부 배포가 더 좋습니다 (Redhat Enterprise Linux와 같은 기업 배포). Gentoo와 같은 다른 배포는 기본적으로 합리적인 버전이없는 대상을 이동시키는 것입니다. 귀하와 관련된 주요 구성 요소를 살펴보십시오.

Component       Version command
glibc           /lib/libc.so.6
gcc             gcc --version
X               xdpyinfo
libX11          pkg-config --modversion x11
gtk+            pkg-config --modversion gtk+-2.0
qt-4            pkg-config --modversion QtCore

   etc...
1
Paul de Vrieze

당신은 또한 Grub 메뉴를 확인할 수 있습니다, 일반적으로 많은 배포/버전 정보를 제공합니다 :-)

1
Antoine Benkemoun