현재 실행 중인 커널을 컴파일하는 데 사용되는 GCC 버전을 확인하기 위해 bash 셸에서 신뢰할 수 있는 방법은 무엇입니까? major.minor.patch
출력의 첫 번째 줄의 마지막 토큰과 비교할 수 있는 형식으로 필요합니다 gcc --version
.
나는 /proc/version
구문 분석을 위해 다음을 사용했습니다.
awk '{print $8}' /proc/version | tr -d ','
그러나 내가 찾고 있는 버전 문자열이 항상 나타나지는 않습니다 /proc/version
. 더 강력한 접근 방식이 있습니까? 더 어려운 경우 배포를 독립적으로 만들지 않고도 Ubuntu에서만 작동하는 강력한 솔루션이면 충분합니다.
답변1
Pastebin의 올바른 출력을 표시하도록 GAD3R의 편집기를 업데이트했습니다.
패치는 2022년 9월 28일에 Linux 커널에 포함되었습니다.
우분투를 확인하세요 /boot/config-$(uname -r)
:
grep -i gcc /boot/config-$(uname -r)
CONFIG_CC_VERSION_TEXT="x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120300
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
CONFIG_HAVE_GCC_PLUGINS=y
이것은 opensuse에서 작동합니다.
# gzip -dc /proc/config.gz | grep -i gcc
CONFIG_CC_VERSION_TEXT="gcc (SUSE Linux) 7.5.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=70500
CONFIG_HAVE_GCC_PLUGINS=y