tomyamaのブログ

日記・雑記。

Linux系の各ディストリビューションのバージョンを確認するコマンド


目次


 

はじめに

Knoppixのバージョンを確認するコマンドが知りたいと思ってググってみたのですが、方法がわかりませんでした。

 

自分で探そうと思って、目ぼしいディレクトリをgrepしまくりました。

一番最初に見つけたのは

というファイルです。

$ strings /home/knoppix/Desktop/KNOPPIX/KNOPPIX/bootonly.iso | sed -n 's!^.*\(KNOPPIX V[^ ][^ ]*\) .*$!\1!p'
KNOPPIX V8.6.1
KNOPPIX V8.6.1
KNOPPIX V8.6.1
KNOPPIX V8.6.1
KNOPPIX V8.6.1
$

 

でも、すぐ近くにもっと良いファイルが見つかりました。

 

$ cat /home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion
8.6.1-2019-10-14
$

 

せっかくなので、Linuxの各ディストリビューションのバージョンを、コマンドで確認する方法をまとめてみました。

 

Linux全般

/proc/version

/procファイルシステムのversionファイルが使えるはずです。しかし、漠然とした情報(kernelコアのみ)しか表示しないので、他の方法を検討したいところ。。

 

$ cat /proc/version
Linux version 5.14.0-168.el9.x86_64 (mockbuild@x86-05.stream.rdu2.redhat.com) (gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2), GNU ld version 2.35.2-24.el9) #1 SMP PREEMPT_DYNAMIC Fri Sep 23 11:43:25 UTC 2022
$

「el9」というパッケージ名から「Red Hat Enterprize Linux」の 9系 である事が推察できるけど、派生しているディストリビューションが何なのかまでは特定できない。したがってイマイチ。

 

CentOSDebian

/etc/redhat-release

$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
$

CentOS系はこれが一番判り易いかもしれません。ただし、このファイルで示している版から派生したディストリビューションが在る場合には、それを特定する事は出来ません。

 

/etc/os-release

$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
$

このファイルでも良いけど長いですね。他のツールから参照させるための情報が詰まっているっぽい。バージョンを知りたいだけであれば、「/etc/redhat-release」で充分な場合も。ただし、記述形式がとてもシンプルなので(キー="")いろいろな環境で使い易そうです。例えば、/bin/shなら、ドット「.」でそのまま読み込んで使えますね。

例). /etc/os-release; echo $PRETTY_NAME

 

Knoppix

/home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion

$ cat /home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion
8.6.1-2019-10-14
$

 

Knippixには、CentOSDebian系と同様に「/etc/os-release」も在ります。os-releaseには派生元であるDebianの情報が記載されています。ファイルの中身は【スクリプトの実行結果】を参照してください。

 

Cygwin

cygcheck コマンド

$ cygcheck -c cygwin
Cygwin Package Information
Package              Version        Status
cygwin               3.3.6-1        OK
$

 

Android, Termux

ENVIRONMENT [ 環境変数 ]

$ env | grep TERMUX
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_APP_PID=19077
TERMUX_VERSION=0.118.0
TERMUX_APK_RELEASE=F_DROID
TERMUX_IS_DEBUGGABLE_BUILD=0
$

 

さいごに

Windowsのverコマンドに倣って、「ver」というスクリプトにしてみました。

「/usr/local/bin/ver」に置いて使うことにします。

 

[ver]スクリプト

#!/bin/sh

sh_exec()
{
  echo "----------"
  if [ "$1" = "@" ]; then
    shift
  else
    echo "command: $@"
  fi
  "$@"
}

sh_env_grep()
{
  env | grep "$@"
}

if [ -f "/home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion" ]; then
  sh_exec cat "/home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion"
fi
if [ -f "/etc/os-release" ]; then
  sh_exec cat "/etc/os-release"
fi
if [ -f "/etc/redhat-release" ]; then
  sh_exec cat "/etc/redhat-release"
fi
if [ -f "/etc/issue" ]; then
  sh_exec cat "/etc/issue"
fi
if `which cygcheck >/dev/null 2>&1`; then
  sh_exec cygcheck -c cygwin
fi
if [ -f "/proc/version" ]; then
  sh_exec cat "/proc/version"
fi
if `env | grep TERMUX >/dev/null`; then
  sh_exec @ sh_env_grep "TERMUX"
fi

exit $?

 

スクリプトの実行結果

CentOS Stream 9

$ ver
----------
command: cat /etc/os-release
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
----------
command: cat /etc/redhat-release
CentOS Stream release 9
----------
command: cat /proc/version
Linux version 5.14.0-168.el9.x86_64 (mockbuild@x86-05.stream.rdu2.redhat.com) (gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2), GNU ld version 2.35.2-24.el9) #1 SMP PREEMPT_DYNAMIC Fri Sep 23 11:43:25 UTC 2022
$

 

CentOS 8.1

$ ver
----------
command: cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

----------
command: cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
----------
command: cat /proc/version
Linux version 4.18.0-147.5.1.el8_1.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Wed Feb 5 02:00:39 UTC 2020
$

 

Cygwin 3.3.6-1

$ ver
----------
command: cygcheck -c cygwin
Cygwin Package Information
Package              Version        Status
cygwin               3.3.6-1        OK
----------
command: $ cat /proc/version
CYGWIN_NT-10.0-19044 version 3.3.6-341.x86_64 (corinna@calimero) (gcc version 11.2.0 20210728 (Fedora Cygwin 11.2.0-2) (GCC) ) 2022-09-05 11:15 UTC
$

 

Knoppix 8.6.1
$ ver
----------
comnand: cat /home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion
8.6.1-2019-10-14
----------
command: cat /etc/os-release
PRETTY_NAVE="Debian GNU/Linux 10 (buster)
NAME="Debian GNU/Linux"
VERSI0N_ID="10"
VERSI0N="10 (buster)"
VERSI0N_CODEMAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
----------
command: cat /proc/version
Linux version 5.3.5-64 (root@eeepc) (gcc version 9.2.1 20190909 (Debian 9.2.1-8)) #16 SMP PREEMPT Wed Oct 23 02:08:38 CEST 2019
$

 

Android, Termux 0.118.0

$ ver
----------
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_APP_PID=19077
TERMUX_VERSION=0.118.0
TERMUX_APK_RELEASE=F_DROID
TERMUX_IS_DEBUGGABLE_BUILD=0
$