여러 Linux 배포판 중 하나에 대한 필수 구성 요소 세트를 설치해야 한다고 가정해 보겠습니다. 이 경우 릴리스에 따라 설치 표현식을 전환해야 합니다.
나는 알고 uname -v
있으며, 깨지기 쉬운 문자열 표현과 논리를 사용하여 해당 명령의 출력을 확인할 수 있다는 것을 알고 있습니다. 그러나 나에게 정말로 필요한 것은:
V=$(something-like-uname)
echo $V
"Debian"
# or
"Gentoo"
# or
"Redhat"
# or
"Arch"
# etc.
이 명령은 무엇입니까? (존재하는가?)
답변1
저는 항상 lsb_release -i
먼저 확인하고
/etc/os-release
백업으로 확인합니다. 다음에서 사용할 수 있어야 합니다.많은
그러나 물론 그것이 모든 곳에 있을 것이라고는 결코 기대할 수 없습니다. 그것은무료 데스크탑 표준
그리고 등장하다체계적인 시스템. Slackware에서는 다음과 같이 말합니다.
$ cat /etc/os-release
NAME=Slackware
VERSION="14.2"
ID=slackware
VERSION_ID=14.2
PRETTY_NAME="Slackware 14.2"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:slackware:slackware_linux:14.2"
HOME_URL="http://slackware.com/"
SUPPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
BUG_REPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
Raspbian에서:
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
귀하의 관심 분야는 다음과 같습니다 ID
.
답변2
lsb_release -i
설치하면 원하는 대로 작동할 수 있습니다. 그렇지 않으면 등 의 파일을 확인합니다 /etc/redhat-release
./etc/debian_version
$ lsb_release -i
Distributor ID: Fedora
답변3
나는 다음을 사용할 것이다:
grep -Po "(?<=^ID=).+" /etc/os-release | sed 's/"//g'