RHEL/RPM 기반 배포 감지

RHEL/RPM 기반 배포 감지

RHEL/RPM 기반 배포판에서 실행되고 있는지 감지하는 스크립트를 작성하려고 합니다.

dpkg나는 두 가지 를 동시에 설치 하도록 구성된 이상한 시스템을 발견했습니다 .rpmwhich rpm

나는 이것을 시도한다:

if [[ "$(cat /etc/*[_-][rv]e[lr]*)" == (CentOS|Fedora) ]]; then
  #...
fi

하지만 이를 위해서는 모든 RHEL/RPM 기반 배포판의 이름을 알아야 합니다.

답변1

목표가 rpm시스템에 패키지 관리자가 있는지 검색하는 것이라면 RPM 패키지 데이터베이스가 비어 있지 않은 것이 좋은 경험적 방법이 될 것입니다.

if [ -n "$(rpm -qa)" ] 2>/dev/null; then
  echo "This looks like an rpm-based system"
else
  echo "Either there is no rpm command, or the rpm package database has no entries"
fi

답변2

이 파일에는 로컬 운영 체제가 파생된 기본 릴리스를 식별하는 /etc/os-release이 필드가 포함되어 있습니다 . 다음이 포함되어 ID_LIKE=있는지 확인할 수 있습니다 .rhelgrep

cat /etc/os-release | grep ID_LIKE= | grep rhel

이 파일에 대한 추가 문서:무료 데스크탑.

답변3

/etc/redhat-release 또는 /etc/fedora-release가 있는지 확인하겠습니다.

답변4

다음 출력을 확인할 수 있습니다 /proc/version.

$ cat /proc/version 
Linux version 3.14.8-200.fc20.x86_64 ([email protected]) 
(gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) ) #1 SMP Mon Jun 16 21:57:53 UTC 2014

예:

$ grep -q 'Red Hat' /proc/version && echo "Redhat based distro"
Redhat based distro

관련 정보