現在実行中のカーネルをコンパイルするために使用される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カーネルに含まれていました。
Ubuntuをチェックしてください/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