委託するサーバ、自分が管理するサーバ、privateなサーバは、かつてはSun OSもあったが、気がついたら全てLinuxになっていた。現在使っているDistributionは、CentOS, Ubuntu, Debianだが、ふと気がつくと、どのdistributionだったか覚えていないため、少しウロウロすることがある。

最も普遍的な方法は、uname -a だが、CentOSはそっけない情報しか返さない。unameが返す情報からDistributionを知ることはできるものの、直感的にdistributionの名前そのものが入っていないと、認識するまでに少し時間がかかる。

/proc/versionは、確認する限り上記3つのdistributionに存在するので、普遍的に使える。

例えば、CentOSの場合は、以下のようになる。

$ uname -a
Linux _hostname_ 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ cat /proc/version
Linux version 3.10.0-957.10.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Mar 18 15:06:45 UTC 2019

CentOSがRed Hat Linux由来であることが分かる。

ちなみに、Ubuntuは、

$ cat /proc/version
Linux version 3.2.0-60-generic (buildd@toyol) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014

Debianは、

$ cat /proc/version 
Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.144-3.1 (2019-02-19)

となる。

追記

Raspbianは、

$ cat /proc/version 
Linux version 4.14.79-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1159 SMP Sun Nov 4 17:50:20 GMT 2018

$ uname -a
Linux pi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux

となり、微妙でした。