RHEL/RPM 기반 배포판에서 실행되고 있는지 감지하는 스크립트를 작성하려고 합니다.
dpkg
나는 두 가지 를 동시에 설치 하도록 구성된 이상한 시스템을 발견했습니다 .rpm
which 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=
있는지 확인할 수 있습니다 .rhel
grep
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