どのようにして自分が実行しているLinuxのバージョンを知ることができますか?
どのLinuxシステムでも動作するLinuxのバージョン(ディストリビューションとカーネルのバージョンだと思いますが)を(コマンドラインから)知る方法はありますか?
どのLinuxシステムでも動作するLinuxのバージョン(ディストリビューションとカーネルのバージョンだと思いますが)を(コマンドラインから)知る方法はありますか?
カーネルは uname
で普遍的に検出されます:
$ uname -or
2.6.18-128.el5 GNU/Linux
どのディストリビューションとバージョンを使用しているかを判断するクロスディストリビューションの方法は本当にありません。これを一貫性のあるものにしようとする試みがありますが、残念ながら最終的には異なります。LSB ツールはこの情報を提供しますが、皮肉にもデフォルトではどこにでもインストールされているわけではありません。Ubuntu 9.04 システムに lsb-release
パッケージがインストールされている場合の例:
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
その他の場合、最も広く利用できる方法は /etc/something-release
ファイルをチェックすることです。これらのファイルは、ほとんどの一般的なプラットフォームとその派生物(例: Red Hat と CentOS)に存在しています。
いくつかの例を紹介します。
Ubuntu は /etc/lsb-release
:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"
しかし Debian は /etc/debian_version
:
$ cat /etc/debian_version
5.0.2
Fedora、Red Hat、CentOS は:
Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)
Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)
newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
Gentoo:
$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1
私は今のところ利用可能な SUSE システムを持っていませんが、私はそれが /etc/SuSE-release
であると信じています。
Slackwareは/etc/slackware-release
および/または/etc/slackware-version
を持っています。
Mandrivaは/etc/mandriva-release
を持っています。
その後、人気のあるディストリビューションのほとんどのために、
$ cat /etc/*{release,version}
は最も頻繁に動作します。
さらに、この情報を自動的に取得するために、Ohai と Facter の 2 つのサードパーティプログラムを使用することができます。
多くのディストリビューションでは、/etc/issue
や /etc/motd
にこの種の情報が含まれていますが、セキュリティポリシーや ベストプラクティス によれば、これらのファイルにはアクセス通知バナーが含まれているはずです。
また、以下のようにしてみてください:
$ cat /etc/issue
通常は(常にではありませんが)どのディストリビューションを使用しているかを教えてくれます。
lsb_release -a && uname -r
この問題は、** Python with the platform
module **:
platform()
関数の使用:
python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6
上記のコマンドは、可能な限り多くの有用な情報を含む、基礎となるプラットフォームを識別する単一の文字列を返します。 _
または uname()
関数の使用:
python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')
上記のコマンドは _007、namedtuple()
、system
、node
、release
、version
、machine
、processor
の 6 つの属性を含む dist()
を返します。 _
または &007関数を使う:
python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')
最後のコマンドは Linux OSのディストリビューション名を決定しようとしますが、Python 3.5からdeprecatedされており、Python 3.8では削除される予定です。