/ etc / os-release의 존재에 의존 할 수있는 Linux 배포판은 무엇입니까?


17

대부분의 (또는 이상적으로는 모든) 최신 배포판에서 작동하는 Linux 배포판 이름과 버전을 결정하는 방법을 찾으려고합니다. 내가 /etc/os-release시도한 배포판 (CentOS, Debian)에 필요한 정보 가 포함되어 있지만 그 존재에 의존하는 것이 얼마나 안전합니까? 같은 명령 uname -a에는 실제로 동일한 정보가 포함되어 있지 않으며 lsb_release최소한 CentOS에는 존재하지 않습니다.

배포판과 함께 제공되는 내용을 정확하게 찾을 수있는 빠른 방법이 /etc/os-release있습니까? 또한,있다 /etc/os-release가 포함 보장 NAME, VERSION그리고 PRETTY_NAME필드?


1
우분투, 데비안, 아치. 어쨌든 나는 그런 식으로 배포판 감지를 생략합니다. 마지막으로 배포판을 구별해야 할 때 특정 패키지 관리자 (예 : pacman-> Arch, apt-get & no pacman-> Ubuntu 또는 Debian)가 있는지 확인하고있었습니다. 다소 까다로운 작업이며 더 나은 솔루션이 있는지 알고 싶습니다.
ddnomad

1
왜 배포 이름을 알아야하는지 궁금합니다. 기능 감지를 수행해야 할 때 브라우저 감지 의 경우처럼 들립니다 .
xDaizu

@xDaizu 원격 호스트에서 스크립트를 실행하여 다양한 정보를 얻습니다.
w128

이 경우 @ w128, 정적 가변 가변 배포 목록에 의존하는 대신 "기능"(/ etc / os-release)이 존재하는지 (그리고 그렇지 않은 경우 다른 방법으로 대체) 확인할 수 없습니까?
xDaizu

1
@xDaizu가 "다른 방법"으로 돌아 가면 지원해야 할 몇 가지 주요 배포판에서 문제가 제안 된 간단한 솔루션을 신뢰할 수 있음을 보장 할 수 있다면 불필요한 작업이 필요할 수 있습니다. 이 경우
파 128

답변:


14

systemd를 실행하는 모든 시스템에는 systemd의 일부로 지정된/etc/os-release 이 있어야합니다 . systemd가없는 일부 시스템에도 시스템이있을 수 있습니다 ( 예 : systemd는 선택적이지만 모든 경우에 설치 되는 Debian 8 )./etc/os-release

사양에 따라 모든 필드는 선택 사항이며 일부 필드에는 기본값 ( "Linux" NAMEPRETTY_NAME)이 있습니다.

/etc/os-release공지 사항 에서 더 많은 배경을 찾을 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.